1

WSO2ESBでサポートされているさまざまなトランスポートを試しています。WSO2ESBのTCPトランスポートを有効にしたい。をダウンロードしてaxis2-transport-tcp-1.0.0.jar、に配置しましたESB_HOME/repository/components/lib。追加することでTransportSenderを有効にすることができました

<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();

統合の問題だと思いますが、解決策は思いつきませんでした。

4

1 に答える 1

2

TCPトランスポートを有効にするために、「axis2-transport-tcp-1.0.0.jar」を追加する必要はありません。その必須ライブラリはWSO2ESBに付属しています。

あなたがしなければならないのはで利用可能なaxis2.xmlに行くことです

ESB_HOME/repository/conf/axis2/axis2.xml

トランスポート送信者とトランスポート受信者用に次のブロックを追加します。ここに追加してtcpポートを追加できます。

<parameter name="transport.tcp.port">6060</parameter>

以下に示すように。トランスポートレシーバー用

<!-- 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"/>

ありがとう、ダーシャナ。

于 2013-03-27T12:07:25.807 に答える