我正在嘗試使用 Oracle 高級隊列而不是 weblogic 中正在運行的 JMS 實現。理論上,我已經在 Weblogic 中按照應有的方式配置了所有內容(根據文檔),但是,當嘗試發送消息時,我收到以下錯誤:####<Sep 18, 2019 10:27:12,290 AM CEST> <Info> <EJB> <svc-1> <svc_srv_1> <[ACTIVE] ExecuteThread: '4'?for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <5e679652-75c8-44bc-948a-cec4ee2af708-00000437>?<1568795232290> <[severity-value: 64] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-010213>?<Message-Driven EJB: OutQueueMDBReader's transaction was rolled back, because javax.jms.JMSRuntimeException:?[JMSPool:169829]JMS 2.0 method "createContext(int sessionMode)", called on the interface?"javax.jms.ConnectionFactory", is not implemented by this JMS Provider.:?java.lang.AbstractMethodError: oracle.jms.AQjmsXAQueueConnectionFactory.createXAContext()Ljavax/jms/XAJMSContext;? ? ? ? at weblogic.deployment.jms.JMSExceptions.getJMSRuntimeException(JMSExceptions.java:47)? ? ? ? at weblogic.deployment.jms.PooledConnectionFactory.createContext(PooledConnectionFactory.java:298)? ? ? ? at weblogic.jms.integration.injection.AbstractJMSContextManager.createContext(AbstractJMSContextManager.java:68)? ? ? ? at weblogic.jms.integration.injection.AbstractJMSContextManager.getContext(AbstractJMSContextManager.java:49)? ? ? ? at weblogic.jms.integration.injection.TransactedJMSContextManager$Proxy$_$$_WeldClientProxy.getContext(Unknown Source)? ? ? ? at weblogic.jms.integration.injection.InjectableJMSContext.delegate(InjectableJMSContext.java:144)? ? ? ? at weblogic.jms.integration.injection.ForwardingJMSContext.createBytesMessage(ForwardingJMSContext.java:105)? ? ? ? Truncated. see log file for complete stacktracejava.lang.AbstractMethodError: oracle.jms.AQjmsXAQueueConnectionFactory.createXAContext()Ljavax/jms/XAJMSContext;我的代碼運行的最后一個地方就是:? ? @Inject? ? @JMSConnectionFactory("MyConnectionFactory")? ? private JMSContext context;? ? BytesMessage bytesMessage = getContext().createBytesMessage();我已經檢查過這個 JMS 2.0 文檔,看起來一切都應該正常工作。我可以從不同版本導入接口或類似的東西嗎?
1 回答

肥皂起泡泡
TA貢獻1829條經驗 獲得超6個贊
根據日志中的此消息:
此 JMS 提供程序未實現在接口“javax.jms.ConnectionFactory”上調用的 JMS 2.0 方法“createContext(int sessionMode)”。: java.lang.AbstractMethodError: oracle.jms.AQjmsXAQueueConnectionFactory.createXAContext()Ljavax/jms /XAJMSContext;
您引用的文檔只是一篇有關 JMS 2.0 規范中的新增內容的文章。它沒有聲明 OAQ 為這些新功能提供哪些支持。您收到錯誤消息的事實以及刪除 OAQ 后它起作用的事實表明 OAQ 根本不支持 JMS 2.0。我建議您修改您的應用程序以使用 JMS 1.1 API。
添加回答
舉報
0/150
提交
取消