2014-04-24 95 views
1

我正在爲IBM在越南的大客戶BIDV工作。IBM Worklight - JMS適配器將消息發送給TIBCO EMS

我正在開發一個JMS適配器來發送消息給TIBCO EMS。當我在Eclipse中調用過程中,出現此錯誤:

類com.worklight.adapters.jms.JMSConnectionManager $ JMSSession可以 不能訪問類com.tibco.tibjms.TibjmsxSessionImp的成員與 修飾符「公共」 。

任何人都可以幫忙嗎?

全部日誌低於:

[ERROR] FWLSE0099E:參數: [項目BIDVMobile]未能創建消息 :JAVA在調用程序 [項目BIDVMobile] JMSTransfer/JMSProducerFWLSE0100E發生錯誤。 lang.IllegalAccessException:類 com.worklight.adapters.jms.JMSConnectionManager $ JMSSession不能 訪問類com.tibco.tibjms.TibjmsxSessionImp與 修飾語 「公共」 FWLSE0101E的成員:產生的原因:[項目 BIDVMobile] nulljava。 lang.RuntimeException:無法cr eate消息 :java.lang.IllegalAccessException:類 com.worklight.adapters.jms.JMSConnectionManager $ JMSSession不能 接入類com.tibco.tibjms.TibjmsxSessionImp與 修飾語 「公共」 在 com.worklight成員。 adapters.jms.JMSConnectionManager $ JMSSession.createMessage(JMSConnectionManager.java:476) 在 com.worklight.adapters.jms.JMSSynchronousProducer.putMessage(JMSSynchronousProducer.java:54) 在 com.worklight.adapters.jms.JMSSynchronousProducer。 invoke(JMSSynchronousProducer.java:49) at com.worklight.integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:57) at com.worklight.integration.model.Procedure.invoke(Procedure.java:166) 在 com.worklight.integration.model.InvocationContext.call(InvocationContext.java:169) 在 com.worklight.integration.model .InvocationContext.call(InvocationContext.java:38) at java.util.concurrent.FutureTask.run(Unknown Source)at com.worklight.integration.model.InvocationContext $ DirectExecutorService.execute(InvocationContext.java:284) at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)at com.worklight.integration.model.InvocationContext.submit(InvocationContext.java:138) at com.worklight.integration.model.InvocationContextManager.s ubmitInvocation(InvocationContextManager.java:58) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.callProcedure(DataAccessServiceImpl.java:497) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.access $ 100(DataAccessServiceImpl的.java:56) 在 com.worklight.integration.services.impl.DataAccessServiceImpl $ 4.execute(DataAccessServiceImpl.java:392) 在 com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java: 76) at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedureInternal(DataAccessServiceImpl。的java:389) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.invokeDynamicProcedure(DataAccessServiceImpl.java:456) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.invokeDynamicProcedure(DataAccessServiceImpl.java:432) 在 com.worklight.integration.js.JavaScriptIntegrationLibraryImplementation.invokeDynamicProcedure(JavaScriptIntegrationLibraryImplementation.java:126) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(來源不明)在 太陽.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225) at org.mozilla.javascript.optimizer.OptRuntime.callN( OptRuntime.java:52) 在 org.mozilla.javascript.gen._integration_js_24._c_anonymous_23(/integration.js:248) 在 org.mozilla.javascript.gen._integration_js_24.call(/integration.js) 在 org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) 在 org.mozilla.javascript.gen.H_3A_5Ckhanhpt_worklight_space2_5CBIDVMobile_5Cadapters_5CJMSTransfer_JMSTransfer_impl_js_29._c_writeMessage_1(H%3A%5Ckhanhpt_worklight_space2%5CBIDVMobile%5Cadapters%5CJM STransfer/JMSTransfer-impl.js:15) 在 org.mozilla.javascript.gen.H_3A_5Ckhanhpt_worklight_space2_5CBIDVMobile_5Cadapters_5CJMSTransfer_JMSTransfer_impl_js_29.call(H%3A%5Ckhanhpt_worklight_space2%5CBIDVMobile%5Cadapters%5CJMSTransfer/JMSTransfer-impl.js) 在 org.mozilla。 javascript.ContextFactory.doTopCall(ContextFactory.java:394) 在 org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) 在 org.mozilla.javascript.gen.H_3A_5Ckhanhpt_worklight_space2_5CBIDVMobile_5Cadapters_5CJMSTransfer_JMSTransfer_impl_js_29.call(H%3A% 5Ckhanhpt_worklight_space2%5CBIDVMobile%5Cadapters%5CJMSTransfer/JMSTransfer-impl.js) at com.worklight.integration.js.JavaScriptManager.ca llFunction(JavaScriptManager.java:240) 在 com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:214) 在 com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:194) 在 com.worklight.integration.services.impl.AdapterManagerImpl.invokeFunction(AdapterManagerImpl.java:104) 在 com.worklight.integration.js.JavaScriptProcedureInvoker.invoke(JavaScriptProcedureInvoker.java:42) 在 com.worklight .integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:57) at com.worklight.integration.model.Procedure.invoke(Procedure.java:166) 在 com.worklight.integration.model.InvocationContext.call(InvocationContext.java:169) 在 com.worklight.integration.model.InvocationContext.call(InvocationContext.java:38) 在java.util.concurrent中。 FutureTask.run(Unknown Source) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at com.worklight.server.util.ProjectLocal $ 1RunnableWrapper.run(ProjectLocal.java:267) at java.lang.Thread。運行(來源不明)

回答

1

我想這在TIBCO EMS的JMS會話實現類暴露方法: createTextMessage(...)作爲受保護或私人。 Worklight正在使用Java反射來創建和發送消息。 它調用幾個方法,如: createTextMessage,setJMSReplyTo,setJMSCorrelationID和其他... 您可以附加Tibco EMS客戶端Jar嗎?

+0

我遵循IBM入門頁面上的示例。我使用適配器配置文件和javscript文件來調用WL.Server函數。這裏有鏈接我的文件:tibjms.jar http://www.mediafire.com/download/movq2srtm93e385/tibjms.jar JMSTransfer-impl.js http://www.mediafire.com/view/zv5jexzo8abwvdw/JMSTransfer -impl.js JMSTransfer.xml http://www.mediafire.com/view/rxsssxc0hvhilmr/JMSTransfer.xml server.xml中 http://www.mediafire.com/view/w8zage4ogp0n96k/server.xml – user3567557

1

你能告訴我如何連接到TIBCO EMS嗎? 這是由代碼或配置?

至於你提到你BIDV工作,我可能指向您的權利人在當地未來;)

乾杯 勒布

+0

我按照入門頁面上的示例進行操作。我使用適配器配置文件和javscript文件來調用WL.Server函數。這裏有鏈接我的文件:tibjms.jar http://www.mediafire.com/download/movq2srtm93e385/tibjms.jar JMSTransfer-impl.js http://www.mediafire.com/view/zv5jexzo8abwvdw/JMSTransfer -impl.js JMSTransfer.xml http://www.mediafire.com/view/rxsssxc0hvhilmr/JMSTransfer.xml server.xml中 http://www.mediafire.com/view/w8zage4ogp0n96k/server.xml – user3567557

+0

迄今爲止的配置對我來說看起來很合理。這看起來更像是一個產品,然後給我配置錯誤,因爲worklight似乎試圖通過反射訪問TIBCO會話實現的非公開部分(無法訪問具有修飾符「public」的類com.tibco.tibjms.TibjmsxSessionImp的成員)。 – Seb

0

我們有一個類似的問題,工作燈服務器上正在運行,上配置JMS資源WAS並指向WebSphere MQ。我們通過在WAS上添加服務集成總線和隊列來解決問題,以便消息首先進入WAS SIB上的隊列,然後從那裏進入MQ。