2013-03-27 42 views
1

我正在試驗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(); 

我想這是一個整合的問題,但我不能拿出任何解決方案。

回答

2

要啓用TCP傳輸,您不必添加「axis2-transport-tcp-1.0.0.jar」它的nessasary庫隨附WSO2 ESB。

所有您需要做的就是去提供axis2.xml在

ESB_HOME/repository/conf/axis2/axis2.xml 

,並添加下面的塊傳輸發送和傳輸Reciver 在這裏你可以通過添加

<parameter name="transport.tcp.port">6060</parameter> 
添加TCP端口

如下所示。 對於傳輸接收機

<!-- Enable TCP message --> 
<transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportListener"> 
    <parameter name="transport.tcp.port">6060</parameter> 
</transportReceiver> 

要增加運輸發件人

<transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/> 

謝謝你, Dharshana。

+0

我想我已經使用org.apache.axis2.transport.tcp.TCPServer而不是org.apache.axis2.transport.tcp.TCPTransportListener。官方文檔沒有在XML聲明中指定任何類,並指定org.apache.axis2.transport.tcp.TCPServer是實現類。那是誤導我的。 – infiniteRefactor