2017-03-31 3 views
0

WSO2 ESB에있는 서비스 B에서 WSO2 DSS의 서비스 A로 메시지를 보내려고합니다. 나는 JAX-WS를 사용하여 클라이언트를 생성하고 Java 코드에서 직접 에 액세스 할 수 있습니다,하지만 난 ESB 내로 Axis2는 서비스로 동일한 코드를 내보내고를 둘 때, 나는 다음과 같은 오류가 나타납니다WSO2에서 WSO2 DSS의 서비스 호출 ESB

[2017-03-31 08:30:54,110] ERROR - RPCMessageReceiver  org.wso2.carbon.core.services.echo.Echo.getEchoHttpSoap12Endpoint()Lorg/wso2/carbon/core/services/echo/EchoPortType; 
java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212) 
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117) 
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) 
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395) 
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) 
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoSuchMethodError: org.wso2.carbon.core.services.echo.Echo.getEchoHttpSoap12Endpoint()Lorg/wso2/carbon/core/services/echo/EchoPortType; 
at service.ChangeName.echoString(ChangeName.java:27) 
at service.ChangeName.changeName(ChangeName.java:34) 
... 15 more 
[2017-03-31 08:30:54,126] ERROR - ServerWorker Error processing POST request for : /services/ChangeName.ChangeNameHttpSoap12Endpoint 
org.apache.axis2.AxisFault: org.wso2.carbon.core.services.echo.Echo.getEchoHttpSoap12Endpoint()Lorg/wso2/carbon/core/services/echo/EchoPortType; 
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:208) 
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) 
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395) 
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) 
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212) 
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117) 
... 9 more 
Caused by: java.lang.NoSuchMethodError: org.wso2.carbon.core.services.echo.Echo.getEchoHttpSoap12Endpoint()Lorg/wso2/carbon/core/services/echo/EchoPortType; 
at service.ChangeName.echoString(ChangeName.java:27) 
at service.ChangeName.changeName(ChangeName.java:34) 
... 15 more 

이를 ESB 외부에서 작동하는 코드입니다.

public static String echoString(java.lang.String in) { 
    Echo service = Echo(); 
    EchoPortType port = service.getEchoHttpSoap12Endpoint(); <-- ERROR HERE 
    BindingProvider bp = (BindingProvider)port; 
    bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,LOCAL_ENDPOINT); 
    return port.echoString(in); 
} 

이 문제를 해결하려면 어떤 제안이 필요합니까?

+1

"Axis2 서비스와 동일한 코드를 내 보내서 ESB에 넣을 때"라는 것은 정확히 무엇을 의미합니까? 시냅스 프록시에서 직접 DSS 서비스를 호출 할 수 있기 때문에 테스트를하는 것 이외에는이 작업을 수행 할 필요가 없습니다. 어쨌든, 오류는 생성 한 클라이언트의 누락 된 클래스를 가리키는 것 같습니다. ESB에 어디에서 설치 했습니까? –

답변

0

생성 된 클라이언트를 "jar dependency"로 사용하는 경우이 jar를 src/main/resources/lib 폴더에 넣어야합니다. 또는 war2esb의 "dropins"폴더에 jar 파일을 넣으십시오.