为了账号安全,请及时绑定邮箱和手机立即绑定

将 weblogic JMS 移动到 Oracle 高级队列时出错

将 weblogic JMS 移动到 Oracle 高级队列时出错

白板的微信 2023-08-04 17:34:32
我正在尝试使用 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。


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号