首页 文章

启用DEBUG日志级别WSO2 EI 6.1.1时使用PCML连接器时NativeWorkerPool未捕获异常java.lang.NoSuchMethodError

提问于
浏览
1

我在Wso2 EI 6.1.1中使用AS400 PCML Connector来调用AS400-DB2远程程序调用 .

Issue: 如果在log4j.properties(wso2ei-6.1.1 \ conf)中为rootlogger启用了DEBUG级别日志,则PCML调用不起作用并抛出错误:NativeWorkerPool Uncaught exception .

完整的堆栈跟踪:

错误 - NativeWorkerPool未捕获异常java.lang.NoSuchMethodError:com.ibm.as400.access.SocketProperties.getLoginTimeout()我在org.wso2.carbon.connector.pcml.AS400Initialize.getSocketProperties(AS400Initialize.java:297)at org . 位于org.wso2.carbon.connector.core的org.wso2.carbon.connector.pcml.AS400Initialize.connect(AS400Initialize.java:78)中的wso2.carbon.connector.pcml.AS400Initialize.getConnectionPool(AS400Initialize.java:216) . 位于org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)的org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84)中的AbstractConnector.mediate(AbstractConnector.java:32) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)位于org.apache.synapse.mediators.template的org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104) .invokeMediator.mediate(InvokeMediator.java:148)at org.apache.synapse.mediators.template.InvokeMediator.mediate (InvokeMediator.java:84)位于org.apache的org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59) . 位于org.apache.synapse.mediators.template.InvokeMediator的org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:148)中的synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104) . 在org.apache上的org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)中的org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)中调解(InvokeMediator.java:84)位于org.apache.synapse.mediators.template.InvokeMediator的org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:148)中的.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104)在org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractLi)中的.mediate(InvokeMediator.java:84) stMediator.java:97)位于org.apache的org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169) org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator .java:158)org.apache.synapse.rest.Resource.process(Resource.java:343)org.apache.synapse.rest.API.process(API.java:399)atg.apache.synapse . 位于org.apache.synapse.rest.RES的管理器(RESTRequestHandler.java:121)org.apache.synapse.rest.RESTRequest org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304)at org.apache.synapse.core.axis2.SynapseMessageRecei ver.receive(SynapseMessageReceiver.java:78)org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:326) org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:372)位于org.apache.axis2.transport的org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) .base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java: 617)在java.lang.Thread.run(Thread.java:745)

示例PCML文件:

<pcml version="4.0">
 <program name="Validate" path="/QSYS.LIB/SVDGDG.LIB/PEB0012.PGM">
 <data name="inputNIC" type="char" length="15" usage="input" />
 <data name="inputIAC" type="char" length="4" usage="input" />
 <data name="outputStatusCode" type="char" length="1" usage="output" />
 </program>
</pcml>

在log4j.properties文件中启用了DEBUG日志级别

log4j.rootLogger=DEBUG, CARBON_CONSOLE, CARBON_LOGFILE, CARBON_MEMORY, CARBON_SYS_LOG, ERROR_LOGFILE

PCML连接器配置应用类似于此链接:https://docs.wso2.com/display/ESBCONNECTORS/Configuring+AS400+PCML+Connector+Operations

AS400驱动程序实现lib:jt400

Note:

  • 如果DEBUG级别日志更改为更高级别(信息/错误),PCML调用正常

  • 我的实际要求是应用per-API DEBUG logs . 自上述问题引发per-API DEBUG logs后,我尝试在根 Logger 中全局启用DEBUG级别日志(每个-API日志禁用) . 但问题仍然相同 .

  • 启用电线日志不符合我的要求 .

1 回答

  • 0

    由于jt400.jar版本控制问题导致此错误 . 可以使用最新版本的jt400.jar(现在版本8.5)修复问题 .

相关问题