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