2
我使用JBoss Wildfly和喜歡從一個會話Bean在遠程(未嵌入),以產生消息JMS隊列(活性-MQ-5.9)。如何在遠程JMS-隊列寫信的JBoss
我的豆:
@Stateless
@ResourceAdapter("activemq-ra.rar")
public class FinancialLoggerBean implements FinancialLoggerRemote, ManagedBean {
private static final Logger logger = Logger.getLogger(FinancialLoggerBean.class.getName());
@Resource(lookup = "jboss/ConnectionFactory")
private ConnectionFactory connectionFactory;
@Resource(lookup = "jboss/queue/financialLogQueue")
private Destination destination;
private Connection connection;
@EJB
private FinancialLoggerBeanManager ejbManager;
...
}
我在網上找到了一些例子來說明如何通過資源適配器配置JBoss和主動MQ之間的聯繫。在我standalone.xml我已經配置適配器這樣的:
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter>
<archive>
activemq-rar.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="UseInboundSession">
false
</config-property>
<config-property name="ServerUrl">
failover:(tcp://127.0.0.1:61616)
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:jboss/ConnectionFactory" enabled="true" pool-name="ConnectionFactory">
<xa-pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</xa-pool>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:jboss/queue/financialLogQueue" use-java-context="true" pool-name="financialLogPool">
<config-property name="PhysicalName">
financialLogQueue
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
但資源不能鏈接到我的豆。似乎有東西丟失。
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.comp."financiallogger-ear-1.0-SNAPSHOT"."financiallogger-ejb-1.0-SNAPSHOT".FinancialLoggerBean.env.jboss.ConnectionFactory (missing) dependents: [service jboss.naming.context.java.comp."financiallogger-ear-1.0-SNAPSHOT"."financiallogger-ejb-1.0-SNAPSHOT".FinancialLoggerBean.env."myBeans.FinancialLoggerBean".connectionFactory]
service jboss.naming.context.java.comp."financiallogger-ear-1.0-SNAPSHOT"."financiallogger-ejb-1.0-SNAPSHOT".FinancialLoggerBean.env.jboss.queue.financialLogQueue (missing) dependents: [service jboss.naming.context.java.comp."financiallogger-ear-1.0-SNAPSHOT"."financiallogger-ejb-1.0-SNAPSHOT".FinancialLoggerBean.env."myBeans.FinancialLoggerBean".destination]
任何提示?
感謝,
米歇爾
我很困惑。好像你要發送消息到遠程(換句話說:託管在另一臺機器)隊列,不是嗎?然而,你的配置工作似乎暗示,要設置在本地JEE容器的ActiveMQ的隊列。 – Gimby