【问题标题】:Error while moving weblogic JMS to Oracle Advanced Queuing将 weblogic JMS 移动到 Oracle 高级队列时出错
【发布时间】:2020-01-19 05:23:59
【问题描述】:

我正在尝试使用 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 stacktrace
java.lang.AbstractMethodError: oracle.jms.AQjmsXAQueueConnectionFactory.createXAContext()Ljavax/jms/XAJMSContext;
        at weblogic.deployment.jms.PsuedoXAJMSContext.<init>(PsuedoXAJMSContext.java:87)
        at weblogic.deployment.jms.PrimaryContextHelper.openConnection(PrimaryContextHelper.java:355)
        at weblogic.deployment.jms.PrimaryContextHelper.<init>(PrimaryContextHelper.java:180)
        at weblogic.deployment.jms.PrimaryContextHelper$PrimaryContextHelperServiceGeneratorImpl.createPrimaryContextHelperService(PrimaryContextHelper.java:1205)
        at weblogic.deployment.jms.PooledConnectionFactory.createNonPooledPrimaryContext(PooledConnectionFactory.java:562)
        at weblogic.deployment.jms.PooledConnectionFactory.createContextInternal(PooledConnectionFactory.java:488)
        at weblogic.deployment.jms.PooledConnectionFactory.createContext(PooledConnectionFactory.java:296)
        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)
        Truncated. see log file for complete stacktrace

我的代码运行的最后一个地方就是:

    @Inject
    @JMSConnectionFactory("MyConnectionFactory")
    private JMSContext context;

    BytesMessage bytesMessage = getContext().createBytesMessage();

我已经检查了this JMS 2.0 documentation,似乎一切正常。 我可以从不同版本或类似的东西中导入接口吗?

【问题讨论】:

标签: java oracle jms weblogic12c advanced-queuing


【解决方案1】:

根据您日志中的这条消息:

在接口“javax.jms.ConnectionFactory”上调用的 JMS 2.0 方法“createContext(int sessionMode)”未由此 JMS 提供程序实现。: java.lang.AbstractMethodError: oracle.jms.AQjmsXAQueueConnectionFactory.createXAContext()Ljavax/jms/XAJMSContext;

documentation you cited 只是一篇关于 JMS 2.0 规范中的新内容的文章。它没有说明 OAQ 为这些新功能提供什么支持。您收到错误消息的事实以及当您删除 OAQ 时它可以工作的事实向我表明 OAQ 根本不支持 JMS 2.0。我建议您修改您的应用程序以使用 JMS 1.1 API。

【讨论】:

  • 这就是我想要确认的。奇怪的是代码在没有 OAQ 的情况下完全可以工作,并且只需使用 @JMSConnectionFactory 注入上下文就可以工作,而且据我从以下链接可以看出是 2.0。 oracle.com/technetwork/articles/java/jms20-1947669.html
猜你喜欢
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2020-02-15
相关资源
最近更新 更多