我正在试验WSO2 ESB支持的不同传输。我想为WSO2 ESB启用TCP传输。我已下载axis2-transport-tcp-1.0.0.jar
并将其放入ESB_HOME/repository/components/lib
。我设法通过添加
<transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
到axis2.xml
配置文件。为了启用Transport Receiver,我添加了一个类似的行
<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();
我想这是一个集成问题,但我无法提出任何解决方案。
答案 0 :(得分:2)
要启用TCP传输,您不必添加&#34; axis2-transport-tcp-1.0.0.jar&#34;它的nessasary库随WSO2 ESB一起提供。
您只需转到
中提供的axis2.xml即可ESB_HOME/repository/conf/axis2/axis2.xml
并为Transport sender和Transport Reciver添加以下块 在这里,您可以通过添加
添加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"/>
谢谢你, Dharshana。