EJB30在发布时出现异常javax.naming.NameNotFoundException: RequestOmsQueue not bound
platform:
Jboss 5.1GA(默认jms提供者为JBoss Messaging 1.4,而非JbossMQ)
服务器端:
package com.octawave.oms.trade.msg;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
/**
* Message-Driven Bean implementation class for: QueueMessageBean
*
*/
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/RequestOmsQueue") })
public class QueueMessageBean implements MessageListener {
/**
* Default constructor.
*/
public QueueMessageBean() {
// TODO Auto-generated constructor stub
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
try {
ObjectMessage obj = (ObjectMessage) message;
System.out.println("服务器收到的消息是:" + omessage.getObject());
} catch (Exception e) {
}
}
}
客户端:
package com.octawave.oms.trade.msg;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MDBClient {
public static void main(String[] args) {
try {
InitialContext context = new InitialContext();
QueueConnectionFactory factory = (QueueConnectionFactory) context
.lookup("ConnectionFactory");
QueueConnection connection = factory.createQueueConnection();
QueueSession session = connection.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
// 获取Destination对象
Queue queue = (Queue) context.lookup("queue/RequestOmsQueue");
// 创建发送者
QueueSender sender = session.createSender(queue);
// 创建文本消息
ObjectMessage msg = session.createObjectMessage("hello world!");
// 发送消息
sender.send(msg);
// 关闭会话
session.close();
connection.close();
System.out.println("消息发送完毕");
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
我发现在JBoss5.x根目录server/default/deploy下的mail-service.xml文件中加入如下:
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.org.destination:server=Queue,name=RequestOmsQueue" >
<attribute name="JNDIName" >queue/RequestOmsQueue</attribute>
<depends optional-attribute-name = "DestinationManager" >
jboss.mq:service=DestinationManager
</depends>
</mbean>
重启JBoss问题即解决。
这是我自己的情况。当然这个导致这个异常的肯定不止这一个问题。《JBoss AS 5 Development》第7章有提到在server/**/deploy下建立一个*-service.xml的文件,大致如下:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=
RequestOmsQueue" xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
</mbean>
</server>
另外还有,实体和数据库连接不上或者出问题时,也会出现NameNotFoundException,比如
persistence.xml里的<jta-data-source>java:/MySqlDS</jta-data-source>没有对应好。
附:
另见:http://jeff312.iteye.com/blog/398687
分享到:
相关推荐
JBossTools实践系列:JBossESB服务开发入门
赠送jar包:jboss-logging-3.4.1.Final.jar; 赠送原API文档:jboss-logging-3.4.1.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.1.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.1.Final....
赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....
赠送jar包:jboss-logging-3.4.3.Final.jar; 赠送原API文档:jboss-logging-3.4.3.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.3.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.3.Final....
赠送jar包:jboss-logging-3.4.2.Final.jar; 赠送原API文档:jboss-logging-3.4.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.2.Final....
JBoss in Action: Configuring the JBoss Application Server Publisher: Manning Publications | 2009-01-28 | ISBN: 1933988029 | PDF | 6,58 MB JBoss in Action is the first book to focus on teaching ...
JBOSS MESSAGE USER GUIDE
文档目录: 一.JBOSS入门 1.下载和安装JBoss ...3.消息驱动Bean (Message Driven Bean) 3.1 Queue消息的发送与接收(PTP消息传递模型) 3.2 Topic消息的发送与接收(Pub/sub 消息传递模型) 4.实体Bean(Entity Bean)
java网页抓取部分源码JBoss 工具可视化页面编辑项目 概括 Visual Page Editing 提供了一个编辑器,它具有基于 XML 的文档的源代码和可视化预览,它还包含 BrowserSimulator,用于像移动浏览器一样编辑/查看您的项目...
Hibernate Eclipse Tools是一部分,可以从中单独或与完整的JBoss Tools发行版一起。 获取代码 开始编写代码的最简单方法是 ,然后克隆fork: $ git clone git@github.com:<you>/jbosstools-hibernate.git $ cd ...
Peter Johnson started working in Java in 1998, and was lead designer on projects such as a JDBC driver for the DMSII database that runs on Unisys mainframes. For the past several years he has been ...
JBoss 父 POM JBoss 社区项目的父级 Maven POM。 它是什么? JBoss 父 POM 为 Maven 构建提供默认配置。 最常用的 Maven 插件的推荐/默认版本 jar 和程序集插件的清单配置 用于生成源 jar 和强制执行最低版本的 Java...
JBoss at Work: A Practical Guide
NULL 博文链接:https://fruitking.iteye.com/blog/562868
JBoss 工具的 JSON 工具这个存储库包含一个基于 Xtext 的 JSON 文件编辑器,它需要额外的更新站点到当前的目标平台: (包括所需软件)已知的问题语法着色不起作用(不知道为什么)应该改进大纲树。 例如,具有以下...
JBoss工具浏览器模拟器项目 概括 是一个移动Web浏览器模拟器。 注意:该项目已弃用,将来可能会从JBoss Tools中删除。 它主要用于以一种快速,简便和多平台的方式测试webapp /网站是否可以在移动设备上正确呈现。 ...
某大牛写的jboss-exp 1. 查看系统名称 java -jar jboss_exploit_fat.jar -i http://192.168.7.84:10081/invoker/JMXInvokerServlet get jboss.system:type=ServerInfo OSName 2. 查看系统版本 java -jar jboss_...
JBoss Aerogear工具项目 概括 JBoss Aerogear Tools包含用于跨平台移动开发的工具。 注意:该项目已弃用,将来可能会从JBoss Tools中删除。 该项目提供用于混合移动应用程序开发的工具。 Cordova工具提供了基于...
JBoss 实体Bean 及其接口的模版 (实现JavaMail邮件的接收)
jboss7.1-示例具有JBOSS 7.1 AS示例的EJB 2,将JBOSS 4迁移到JBOSS 7.1 AS