我正在尝试在WebLogic 10.3.5上创建一个MDB(EJB 3.0)。在外部AMQ服务器上监听队列。经过大量工作和教程组合,我在webLogic上部署时遇到以下错误。
[EJB:015027]消息驱动的EJB是事务性的,但JNDI名称ActiveMQXAConnectionFactory引用的JMS连接工厂不是JMS XA连接工厂。
以下是我所做工作的简要介绍:
我已经将相应的库添加到我的WLS类路径中(遵循本教程http://amadei.com.br/blog/index.php/connecting-weblogic-and-activemq),并且我已经创建了相应的JMS模块,如教程中所示。我最初使用ActiveMQConnectionFactory,后来使用ActiveMQXAConnectionFactory,我也忽略了jm。符号,只是将普通名称作为testQueue。
然后使用以下结构创建一个简单的MDB。我显式定义了“connectionFactoryJndiName”属性,因为否则它会假定找不到WebLogic连接工厂,然后引发错误。
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "testQueue"),
@ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "ActiveMQXAConnectionFactory")
},
mappedName = "testQueue")
public class ROMELReceiver implements MessageListener {
/**
* Default constructor.
*/
public ROMELReceiver() {
// TODO Auto-generated constructor stub
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
System.out.println("Message received");
}
}
在这一点上,我被上面提到的错误所困扰。尽管我使用ActiveMQXAConnectionFactory而不是简单的ActiveMQConnectionFactory,但web logic server中的JNDI资源树显示了org。阿帕奇。activemq。ActiveMQConnectionFactory作为我配置的连接工厂的类。
我错过了什么吗?还是这只是连接带有AMQ的WebLogic的完全错误的方式?
提前谢谢。
我知道现在很晚了,但最近我不得不做同样的事情,遇到了同样的错误。这篇文章帮助了我:
https://community.oracle.com/thread/3903705
基本上,它是说在weblogic模块的外部服务器选项的jndi属性中添加一个新参数。
xa=真。
因为ActiveMQ默认情况下不使用Xa连接。
要运行Kafka,需要在文件。有两种设置我不理解。 有人可以解释侦听器和广告侦听器属性之间的区别吗? 留档说: 侦听器:套接字服务器侦听的地址。 和 advertised.listeners:主机名和端口代理将向生产者和消费者做广告。 我什么时候必须使用哪个设置?
我有一个关于正确配置kafka侦听器属性的问题-侦听器和advertised.listers。 在我的配置中,我设置了以下道具: 客户端使用 进行连接。我是否需要在侦听器和广告侦听器中具有相同的值。这里 是指向运行 kafka 代理的主机的 dns 记录。 在什么情况下,我希望它们保持不变和不同? 谢谢!
我想使用2个侦听器配置Kafka身份验证(现在只需要身份验证而无需加密): 一个用于与PLAINTEXT安全进行经纪间私人通信 一个用于消费者/生产者与SASL_PLAINTEXT和SCRAM-SHA-256的公共通信 我有一个只有一个代理(用于测试目的)的Kafka集群和一个有两个节点的Zookeeper集群 我所做的步骤是: 在动物园管理员上创建“admin”和“test user”用户 我总
我正在尝试在服务中使用导入。yaml将一些服务定义移动到单独的文件中。在这里你可以在symfony doc中找到这个。 但是当我试图这样做的时候,我得到了一个错误: 无法自动连线服务“App\Domain\Test\Test”:方法“\uu construct()”的参数“$param”必须具有类型提示或显式给定值。 以下是我的配置文件: 和 这里是服务: 如果我将参数和服务移动到服务中,这将很好
问题内容: 哪种方法更好,直接像这样执行 或通常在类内部声明? 问题答案: 在第二段代码中,必须在调用接口的方法之前先调用属性。 在第一段代码中,您可以直接访问接口方法。 因此,如果您知道每个方法调用都会花费cpu时间,则直接在类中实现它而不是将其作为属性将是有益的。 在这种情况下,您有1个引用,可以使用该引用访问LocationListener的方法 在这种情况下,您有2个引用,一个是 Back
我有一个Red Hat AMQ(基于ActiveMQ Artemis)代理,我希望使用持久订阅(或等效)特性,这样我将有多个OpenWire JMS订阅者订阅我们的应用程序的事件,这些事件将可靠地交付给他们。 我想预先配置订户,这样就可以省去我在初始应用程序启动时的麻烦。我希望避免初始应用程序启动的情况,即在持久订阅服务器执行初始订阅之前,主应用程序开始运行并发布事件。 有什么方法可以预先配置持久