我在JBoss中部署了一个Web应用程序(jms-api.war),我想从中通过JNDI获得一个JMS连接工厂,没有任何配置(像这样)可以吗?我尝试在没有任何配置的情况下使用JNDI:
standalone.xml中的我的连接工厂:
<jms-connection-factories>
<connection-factory name="InVmConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/ConnectionFactory"/>
</entries>
</connection-factory>
</jms-connection-factories>
在我的应用程序中,我有这个Spring豆来访问连接工厂(它在我的测试中使用嵌入式hornetq工作):
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="/ConnectionFactory" />
<property name="resourceRef" value="true"/>
</bean>
在jboss启动我得到这个错误,我该如何解决它?:
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.jboss.resources.jms.ConnectionFactory (missing) dependents: [service jboss.naming.context.java.module.jms-api.jms-api.env.jms.ConnectionFactory]
Jboss日志(hornetq开始部分):
11:00:32,689 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221000: live server is starting with configuration HornetQ Configuration (clustered=false,backup=false,sharedStore=true,journalDirectory=C:\Users\Mojtaba\workspace-hornetq\build\appserver\jboss\standalone\data\../../../hornetqdata/journal,bindingsDirectory=C:\Users\Mojtaba\workspace-hornetq\build\appserver\jboss\standalone\data\../../../hornetqdata/bindings,largeMessagesDirectory=C:\Users\Mojtaba\workspace-hornetq\build\appserver\jboss\standalone\data\../../../hornetqdata/large-message,pagingDirectory=C:\Users\Mojtaba\workspace-hornetq\build\appserver\jboss\standalone\data\../../../hornetqdata/paging)
11:00:32,691 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221006: Waiting to obtain live lock
11:00:32,723 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221013: Using NIO Journal
11:00:32,840 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221034: Waiting to obtain live lock
11:00:32,841 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221035: Live Server Obtained live lock
11:00:33,041 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on 127.0.0.1:9999
11:00:33,777 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221020: Started Netty Acceptor version 3.6.6.Final-redhat-1-fd3c6b7 0.0.0.0:5445 for CORE protocol
11:00:33,779 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221007: Server is now live
11:00:33,780 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 50) HQ221001: HornetQ Server version 2.3.12.Final (2.3.12, 123) [c0d4ec44-d8d5-11e3-afd6-5372513ac770]
11:00:33,786 INFO [org.hornetq.jms.server] (ServerService Thread Pool -- 50) HQ121005: Invalid "host" value "0.0.0.0" detected for "netty" connector. Switching to "Mojtaba-PC". If this new address is incorrect please manually configure the connector to use the proper one.
11:00:33,811 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 50) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/RemoteConnectionFactory
11:00:33,812 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 50) JBAS011601: Bound messaging object to jndi name java:/RemoteConnectionFactory
11:00:33,815 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 52) JBAS011601: Bound messaging object to jndi name java:/ConnectionFactory
11:00:33,816 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 51) HQ221003: trying to deploy queue jms.queue.testQueue
11:00:34,115 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 51) JBAS011601: Bound messaging object to jndi name java:/queue/testQueue
11:00:34,116 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 51) JBAS011601: Bound messaging object to jndi name java:jboss/exported/queues/testQueue
11:00:34,195 INFO [org.jboss.as.server] (ServerService Thread Pool -- 27) JBAS018559: Deployed "jms-api.war" (runtime-name : "jms-api.war")
11:00:34,199 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.jboss.resources.jms.ConnectionFactory (missing) dependents: [service jboss.naming.context.java.module.jms-api.jms-api.env.jms.ConnectionFactory]
(jboss eap 6.2.0, hornetq 2.3.12.Final)
我在消息传递子系统上定义了此连接工厂:
<connection-factory name="RemoteConnectionFactory">
<connectors>
<connector-ref connector-name="netty"/>
</connectors>
<entries>
<entry name="java:jboss/exported/jms/ConnectionFactory"/>
</entries>
</connection-factory>
在我的webapp spring bean配置中(jndiName应该以java:/开头):
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/jboss/exported/jms/ConnectionFactory" />
<property name="lookupOnStartup" value="false"/>
<property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>
并且在web中没有更改或配置。xml(例如,在web.xml中不需要资源引用)!
最简单的解决方案是更改bean配置:
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/ConnectionFactory" />
<property name="resourceRef" value="false"/>
</bean>
如果resourceRef为true,则Spring将尝试查找“java: comp/env/ConnectionFactory”(甚至可能是“java: comp/env//ConnectionFactory”),因为这是正确的资源引用对所有JavaEE容器(不仅仅是JBoss)的样子。
如果要使用资源引用,则必须在 web.xml 文件中声明它们,并将它们映射到 jboss-web.xml 文件中。
当您试图编写必须在不同JavaEE服务器实现之间可移植的代码时,您通常会这样做。它们都有自己的jboss-web.xml变体,用于在常量资源引用名和服务器中的物理资源名之间进行映射。
虽然我还没有使用v6.2,但您可以试试这个。该错误无法通过JNDI树找到您的连接工厂。因此,在您已经列出的条目中添加以下内容:
<entries>
<entry name="java:/ConnectionFactory"/>
<!-- Add this -->
<entry name="java:jboss/exported/ConnectionFactory"/>
</entries>
并将连接器ref从in-vm更改为netty
在本地,我的应用程序可以很好地连接到内置的netty连接工厂,并且在启动或发送主题消息方面没有问题。我的本地盒子是独立的JBoss 5.1和独立的大黄蜂Q。 但是,当部署到我们的DEV服务器(运行集群JBoss 5.1和集群HornetQ)时,我无法连接,得到以下堆栈跟踪: 我正在尝试使用默认的内置netty连接器,除了我自己的JMS主题之外,没有额外的配置。我相对不知道DEV服务器设置,因为它超
问题内容: 我开始按照Android所没有使用的教程进行操作,并得到以下信息: 我想这可以归结为几个问题: 我没有创建自己的信任库,但是在网上搜索教程和其他内容时,不确定如何创建信任库。有没有一种方法可以创建或修改信任库以在其中存储所需的证书?(如果有任何不同,我使用的是自签名证书) 如何使SSL握手顺利进行?现在,我得到的错误是: 老实说,我真的不明白这意味着什么。 我需要在Android设备上
是否可以使用本地接口从war访问驻留在ear文件中的ejb 都部署在同一个应用服务器下。 ejb: 现在,在测试servlet(战争)中: 失败于: javax。命名。NameNotFoundException:试图在/app/webapp/FirstWebEJBTest/12292093中查找comp/env/FirstDemoEJB/Local时。; 但是远程查找可以很好地工作:
目前,我们使用JNDI的Tomcat配置基于这一建议,该建议目前正在发挥作用。 如何使用JMS和JNDI连接到WebSphere MQ(MQ系列)服务器? 由于我们正在升级到v8,我想利用JMS 2.0特性。这需要将jar文件更新到JMS 2.0版本。 因此,我从tomcat lib文件夹中删除了以下JAR。 com。ibm。mq。jar 用这些罐子代替了它们。根据这个链接 com。ibm。mq。
目前,在WMQ端,有一个名为的队列管理器。在这个队列管理器下,我创建了两个通道。一个是,它没有指定SSL密码规范;另一个是,它用配置SSL密码规范,用配置SSL身份验证。 我已经使用IBM密钥管理工具为队列管理器创建了一个密钥存储区。密钥db的路径是。 对于通道,我定义了一个队列连接工厂,如下所示: 现在我只能使用创建连接。但未能查找SSL队列连接工厂。我的代码如下所示: 在查找SSL工厂时,我是
我们有一个java客户端(mule app),它使用hornetq客户端(v2.3.25)。SP20)用于通过JNDI命名服务器(端口1099)连接到HornetQ远程服务器。连接用SSL保护。驱动程序要求显式设置javax.net.ssl.trustStore属性。否则,它不会找到信任存储。 我们想为会话指定一个自定义信任库。但是设置全局属性javax.net.ssl.trustStore可能会