`
applepieone
  • 浏览: 11547 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

EJB3.0在发布时出现异常javax.naming.NameNotFoundException: myqueue not bound

    博客分类:
  • ejb
 
阅读更多

Service:

 
package com.test.ejb;
 
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.ejb.ActivationConfigProperty;
@MessageDriven(
 activationConfig ={
   @ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),
   @ActivationConfigProperty(propertyName="destination",propertyValue="queue/myqueue")
 }
)
 
public class MyQueueMDBBean implements MessageListener {
 
 public void onMessage(Message msg) {
  TextMessage textMessage =(TextMessage)msg;
  
  try {
   System.out.println("MyQueueMDBBean被调用了【"+textMessage.getText()+"】");
   
  } catch (JMSException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  
 }
 
}
 
Client:
 
 
package com.test.ejb;
 
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
public class MyQueueMDBBeanClient {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
 
  try {
   //获取QueueConnectionFactory对象
   InitialContext context =new InitialContext();
   QueueConnectionFactory factory =(QueueConnectionFactory)context.lookup("ConnectionFactory");
   
   //创建QueueConnection
   QueueConnection connnection =factory.createQueueConnection();
   
   //创建QueueSession
   QueueSession session =connnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
   
   //获取Destination对象
   Queue queue =(Queue)context.lookup("queue/myqueue");
   
   //获取文本信息
   TextMessage msg =session.createTextMessage("世界你好啊!");
   
   //创建发送者
   QueueSender sender =session.createSender(queue);
   
 //关闭会话
   session.close();
   connnection.close();

   //发送消息
   sender.send(msg);
   
   System.out.println("消息已发送");
  } catch (NamingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (JMSException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 
 }
 
}
 
发布启动Jboss时出现异常:
javax.naming.NameNotFoundException: myqueue not bound
 at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
 at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
 at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
 at org.jnp.server.NamingServer.lookup(NamingServer.java:443)
 at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
 at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:713)
 at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:673)
 at javax.naming.InitialContext.lookup(InitialContext.java:392)
 at org.jboss.util.naming.Util.lookup(Util.java:222)
 at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupDestination(JmsActivation.java:464)
 at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:352)
 at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:729)
 at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
 at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:619) 
 
 
  解决办法:
 
 我发现在JBoss根目录\server\default\deploy 下的mail-service.xml文件中加入如下:

<mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.org.destination:server=Queue,name=myqueue" >
  <attribute name="JNDIName" >queue/myqueue</attribute>
  <depends optional-attribute-name = "DestinationManager" > jboss.mq:service=DestinationManager </depends>
</mbean>

重启JBoss问题即解决。

 

topic找不到

  <mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.org.destination:server=Topic,name=mytopic" > 
     <!-- JNDI名称 -->
     <attribute name="JNDIName">topic/mytopic</attribute> 
     <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends> 
   </mbean> 
分享到:
评论

相关推荐

    Javax.naming.NameNotFoundException

    在IT行业中,我们经常遇到各种异常,其中之一是“Javax.naming.NameNotFoundException”。这个异常通常在Java命名和目录接口(JNDI)中出现,当我们尝试查找一个在命名上下文中不存在的名称时,就会抛出这个异常。...

    javax.ejb.jar下载

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

    EJB3.0部署消息驱动Bean抛javax.naming.NameNotFoundException异常

    在本文中,将详细讲解当部署EJB3.0的消息驱动Bean时,可能会遇到`javax.naming.NameNotFoundException`异常的情况,并提出相应的解决方案。 首先,了解`javax.naming.NameNotFoundException`异常的具体情况是解决...

    javax.ejb.rar

    javax.ejb.EJB.class javax.ejb.EJBAccessException.class javax.ejb.EJBContext.class javax.ejb.EJBException.class javax.ejb.EJBHome.class javax.ejb.EJBLocalHome.class javax.ejb.EJBLocalObject.class javax...

    javax.ejb.jar

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

    java的ejb.jar包

    javax.ejb.AccessLocalException.class javax.ejb.CreateException.class javax.ejb.DuplicateKeyException.class javax.ejb.EJBContext.class javax.ejb.EJBException.class javax.ejb.EJBHome.class javax.ejb....

    EJB3.0实例教程(源代码).rar )

    **企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(EJB)是Java平台上用于构建可部署在企业级服务器上的组件模型。EJB 3.0是其一个重要版本,它引入了许多改进,使得开发过程更为简化,降低了EJB的复杂性,更加...

    《EJB3.0入门经典》的精简版.pdf

    **企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(EJB)是Java平台上用于构建可部署在企业级应用服务器上的组件模型。EJB 3.0是其一个重要版本,它引入了许多改进,旨在简化开发过程并提高生产力。这本书《EJB...

    JSF1.2+EJB3.0实现的一个项目实例.zip

    5. **依赖注入**:JSF 1.2 和 EJB 3.0 都支持依赖注入(DI),通过注解 `@ManagedProperty` 或 `@EJB` 可以在 JSF Managed Bean 中注入 EJB,简化了组件之间的协作。 6. **Faces Flow**:JSF 1.2 引入了 Faces Flow...

    ejb3.0_培训笔记(达内).

    EJB 3.0是EJB规范的一个重要版本,它在2006年发布,引入了许多重要的改进,使得开发过程变得更加简洁和灵活。 EJB 3.0的核心概念包括实体Bean(Entity Beans)、会话Bean(Session Beans)和消息驱动Bean(Message-...

    javax.ejb.jar.zip

    【标题】"javax.ejb.jar.zip" 是一个与Java企业版(Java EE)相关的压缩文件,其中包含`javax.ejb.jar`这个核心组件。该组件是Java平台企业版的一部分,主要用于实现企业级Java应用中的Enterprise JavaBeans(EJB)...

    javax.ejb-3.1.2.2.jar下载

    - `javax.ejb.EJB`、`javax.ejb.Local`和`javax.ejb.Remote`等注解:用于标记bean的接口,指定其作用范围和远程访问方式。 - `javax.ejb.TimerService`:提供了定时任务的管理,可以在EJB中创建和管理定时器。 描述...

    ejb 3.0 jar 包 很全 part2

    EJB(Enterprise JavaBeans)3.0是Java EE(Enterprise Edition)平台中的一部分,它提供了一种用于构建可部署在服务器端的企业级应用程序的框架。EJB 3.0引入了许多改进,使得开发过程更加简洁,降低了对XML配置的...

    Java之精通EJB3.0.pdf

    EJB3.0是EJB规范的一个重大版本更新,它在EJB2.0的基础上进行了大量的改进和优化,使得开发人员能够更轻松地构建复杂的企业级应用程序。 **特点与改进:** 1. **简化编程模型:**EJB3.0引入了许多新的特性来简化...

    javax.ejb-api.jar

    javax.ejb-api.jar 这个包是用于EJB开发的工具包,请需要的自行下载

    ejb3-persistence(找不到javax.persistence.Entity问题解决)

    “Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity”,查找资料发现是缺少jar包. 添加此包就OK了。 更多说明:https://blog.csdn.net/kingmax54212008/article/details/82762624

    jboss ejb3.0开发介绍

    ### jBoss EJB 3.0 开发指南 #### 一、引言 随着 Java 技术的发展,企业级应用的复杂度不断提高,EJB(Enterprise JavaBeans)作为 Java EE 标准的一部分,在构建分布式系统方面扮演着重要的角色。EJB 3.0 相较于...

    ejb.jar.zip(javax.ebj/javax.ebj.spi) 下载

    在ejb.jar.zip文件中,ejb.jar包含了编译后的EJB类文件和其他相关资源。`license.txt`文件通常包含了该软件的许可协议,详细说明了软件的使用条件和限制,这对于合法使用和分发软件至关重要。 EJB技术的特点和优势...

Global site tag (gtag.js) - Google Analytics