发布日期:2015-03-16 15:31:43

问题:

一个SOA project中使用到了JMSAdapter. It works in unix envrionment. 然而部署在windows时发现有几个JMS Consumer Composite部署时没有问题,但是使用时或通过EM 去访问时,出现Malformed \uxxxx enconding错误,如下。

java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
        at java.util.Properties.loadConvert(Properties.java:568)
        at java.util.Properties.load0(Properties.java:391)
        at java.util.Properties.load(Properties.java:341)
        at oracle.tip.adapter.jms.JmsUtil.getProperties(JmsUtil.java:324)
        at oracle.tip.adapter.jms.JmsUtil.isOracleJMSProvider(JmsUtil.java:592)
        at oracle.tip.adapter.jms.JmsResourceAdapter.isWLSEndpoint(JmsResourceAd
apter.java:171)
        at oracle.tip.adapter.jms.JmsResourceAdapter.endpointActivation(JmsResou
rceAdapter.java:146)
        at oracle.integration.platform.blocks.adapter.fw.impl.AdapterFrameworkIm
pl.endpointActivation(AdapterFrameworkImpl.java:488)
        at oracle.integration.platform.blocks.adapter.fw.jca.lifecycle.JCAEndpoi
ntActivation.performEndpointActivation(JCAEndpointActivation.java:723)
        at oracle.integration.platform.blocks.adapter.fw.jca.lifecycle.JCAEndpoi
ntActivation.activateInboundJcaEndpoint(JCAEndpointActivation.java:706)
        at oracle.integration.platform.blocks.adapter.fw.jca.lifecycle.JCAEndpoi
ntActivation.performActivation(JCAEndpointActivation.java:446)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry$AdapterServiceRevision.endpointActivation(AdapterServiceRevisio
nRegistry.java:604)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry$AdapterServiceRevision.activate(AdapterServiceRevisionRegistry.
java:454)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry$AdapterServiceRevision.setDefaultRevision(AdapterServiceRevisio
nRegistry.java:419)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry$AdapterServiceSeries.setDefaultRevision(AdapterServiceRevisionR
egistry.java:344)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry$AdapterServiceSeriesSet.setDefaultRevision(AdapterServiceRevisi
onRegistry.java:146)
        at oracle.integration.platform.blocks.adapter.fw.metadata.AdapterService
RevisionRegistry.setDefaultRevision(AdapterServiceRevisionRegistry.java:106)
        at oracle.integration.platform.blocks.adapter.AdapterService.defaultRevi
sionChanged(AdapterService.java:401)
        at oracle.integration.platform.common.CompositeLoaderUtil.processDefault
InSeries(CompositeLoaderUtil.java:152)
        at oracle.integration.platform.kernel.FabricKernelInitializerServlet$1.r
un(FabricKernelInitializerServlet.java:923)
        at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run
(WorkManagerExecutor.java:184)
        at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManag
er.java:184)
        at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
>
oracle.fabric.common.FabricDeploymentException: [JCABinding]

解决方法:

1. 显然这是一个字符串处理问题,某文件有非法字符。

2. Unix环境下工作,windows环境fail, 很有可能是file seperator问题。

3. 找到相关配置文件(property文件,或者xml文件)

4.由于不熟悉这个系统,花了些时间找到了JMSAdapter.rar。在soa\soa\connector\下找到了该文件和相关的deployment文件。反编译相关类查到可能的配置文件为jmsadapter_plan.xml。打开发现果然有期望中的windows文件分隔符"\". 修改并重启server, 两个jms consumer composite工作。

发表评论