2017-01-23 69 views
0

我正在嘗試使用WSO2 ESB 4.8.1處理以下情況。如何控制WSO2上的端點警告ESB

ActiveMQ的隊列< ---代理----> WSDL端點(Bizagi)

對於外部情況(每實例中,外部網絡故障),遠程端點原來的服務和被聲明爲無效通過ESB。當偵聽來自隊列的消息嘗試使用發送中介到端點時,代理將顯示以下堆棧跟蹤。

2017-01-23 11:17:15,135 [-] [http-nio-9443-exec-14] **WARN HTTPEndpointFactory Could not read the WSDL endpoint http://IP-Host-Hidden/Procesos/webservices/WorkflowEngineSOA.asmx?wsdl 
java.net.NoRouteToHostException: No route to host** 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:326) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:997) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:933) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301) 
    at org.apache.synapse.config.SynapseConfigUtils.getOMElementFromURL(SynapseConfigUtils.java:312) 
    at org.apache.synapse.config.xml.endpoints.WSDLEndpointFactory.createEndpoint(WSDLEndpointFactory.java:132) 
    at org.apache.synapse.config.xml.endpoints.EndpointFactory.createEndpointWithName(EndpointFactory.java:143) 
    at org.apache.synapse.config.xml.endpoints.EndpointFactory.getEndpointFromElement(EndpointFactory.java:80) 
    at org.wso2.carbon.endpoint.ui.endpoints.wsdl.WsdlEndpoint.build(WsdlEndpoint.java:404) 
2017-01-23 11:17:16,138 [-] [demo_in_jms-Worker-2] ERROR JMSMessageReceiver Unknown error processing message java.lang.NullPointerException 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.isTransportSwitching(Axis2SynapseEnvironment.java:571) 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:335) 
    at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333) 
    at org.apache.synapse.endpoints.WSDLEndpoint.send(WSDLEndpoint.java:69) 
    at org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54) 
    at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:97) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) 
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) 
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166) 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
    at org.apache.axis2.transport.base.AbstractTransportListener.handleIncomingMessage(AbstractTransportListener.java:328) 
    at org.apache.axis2.transport.jms.JMSMessageReceiver.processThoughEngine(JMSMessageReceiver.java:200) 
    at org.apache.axis2.transport.jms.JMSMessageReceiver.onMessage(JMSMessageReceiver.java:122) 
    at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.handleMessage(ServiceTaskManager.java:556) 
    at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:449) 
    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) 

在Github檢查WSDLEndpointFactory類,是不是中介層上拋出checkeable例外,只是一個警告基於一個Java的網絡庫,但此點在JMSMessageReceiver挑起NPE,並且需要辦理強制錯誤,並且代理服務器採用「故障順序」路徑。

我非常欣賞那種解決方案適用於序列來實現這種情況。

回答