我正在試驗WSO2 ESB支持的不同傳輸。我想爲WSO2 ESB啓用TCP傳輸。我已經下載了axis2-transport-tcp-1.0.0.jar
並將其放入ESB_HOME/repository/components/lib
。我設法啓用運輸發件人加入啓用WSO2 ESB的TCP傳輸
<transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
到axis2.xml
配置文件。爲了使傳輸接收機我添加了一個類似線
<transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer"/>
但是這個失敗,當我重新啓動WSO2 ESB來初始化傳輸接收機。相反,我得到一個InstantiationError
:
org.apache.axis2.AxisFault: Exception occured while loading the Axis configuration from /usr/local/wso2esb/repository/conf/axis2/axis2.xml
at org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:190)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfigurationContextFactory.java:65)
at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:398)
at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:290)
at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.apache.axis2.deployment.DeploymentException: org.apache.axis2.transport.tcp.TCPServer
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(AxisConfigBuilder.java:643)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:130)
at org.wso2.carbon.core.CarbonAxisConfigurator.populateAxisConfiguration(CarbonAxisConfigurator.java:308)
at org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:188)
... 8 more
Caused by: java.lang.InstantiationException: org.apache.axis2.transport.tcp.TCPServer
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(AxisConfigBuilder.java:627)
... 11 more
我試過在axis2.xml
但沒有提供端口號參數改變。
我試圖追蹤錯誤。由於沒有參數構造函數,類對象似乎不能被實例化。但我使用相同的jar文件運行下面的示例中沒有任何錯誤:
String className = "org.apache.axis2.transport.tcp.TCPServer";
Class receiverClass;
receiverClass = Loader.loadClass(className);
TransportListener receiver = (TransportListener) receiverClass.newInstance();
我想這是一個整合的問題,但我不能拿出任何解決方案。
我想我已經使用org.apache.axis2.transport.tcp.TCPServer而不是org.apache.axis2.transport.tcp.TCPTransportListener。官方文檔沒有在XML聲明中指定任何類,並指定org.apache.axis2.transport.tcp.TCPServer是實現類。那是誤導我的。 – infiniteRefactor