错误 ejb:“没有可用于处理的 EJB 接收器”

Posted

技术标签:

【中文标题】错误 ejb:“没有可用于处理的 EJB 接收器”【英文标题】:error ejb : "No EJB receiver available for handling" 【发布时间】:2017-04-19 22:06:10 【问题描述】:

线程“AWT-EventQueue-0”java.lang.IllegalStateException 中的异常:EJBCLIENT000025:没有 EJB 接收器可用于处理调用上下文 org.jboss.ejb.client 的 [appName:, moduleName:, distinctName:Biblioo] 组合。 EJBClientInvocationContext@42aee012 在 org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:749) 在 org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116) 在 org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183) 在 org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:253) 在 org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:198) 在 org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:181) 在 org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:144) 在 com.sun.proxy.$Proxy0.addLivre(未知来源) 在 clientlourd.fenetre$2.actionPerformed(fenetre.java:128) 在 javax.swing.AbstractButton.fireActionPerformed(未知来源) 在 javax.swing.AbstractButton$Handler.actionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.fireActionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.setPressed(未知来源) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知来源) 在 java.awt.Component.processMouseEvent(未知来源) 在 javax.swing.JComponent.processMouseEvent(未知来源) 在 java.awt.Component.processEvent(未知来源) 在 java.awt.Container.processEvent(未知来源) 在 java.awt.Component.dispatchEventImpl(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.LightweightDispatcher.retargetMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.processMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.dispatchEvent(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Window.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.EventQueue.dispatchEventImpl(未知来源) 在 java.awt.EventQueue.access$500(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue$4.run(未知来源) 在 java.awt.EventQueue$4.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源)

找不到解决方案:\任何帮助?!

【问题讨论】:

向我们展示您的代码。 JNDI No EJB receiver available for handling的可能重复 这个问题已经有十几个答案了。你看过他们中的任何一个吗? 谢谢大家,问题出在jndi 【参考方案1】:

非常感谢!这是我的代码:

上下文 ctx = null;

    try
        Properties p = new Properties();
        p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
        ctx = new InitialContext(p);
        final interface_remote stub =(interface_remote) ctx.lookup("ejb://Biblioo//biblio!bib.interface_remote");

JButton 按钮 = new JButton("Ajouter"); button.addActionListener(new ActionListener()

public void actionPerformed(ActionEvent arg0) 

                stub.addLivre(new Livre());

                       
    );

捕获(异常 e)

    

        e.toString();

    
    finally
    
        try 
            ctx.close();
         catch (NamingException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        
    

endpoint.name=客户端端点

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false

remote.connections=default

remote.connection.default.host=127.0.0.1

remote.connection.default.port = 8080

remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

remote.connection.default.username=admin

remote.connection.default.password=


@远程

公共接口interface_remote

public void addLivre(Livre L);
public List<Livre> consulterLivres();
public Livre consulterlivres(Long ID_livre);
public void updateLivre(Livre L);
public void supprimerLivre(Long ID_livre);


@Stateless (name="biblio")

公共类 biblio_Impl 实现 interface_remote、interface_local

@PersistenceContext(unitName="Biblio")
private EntityManager em;

@Override

    public void addLivre(Livre L)

    

        em.persist(L);

    

【讨论】:

以上是关于错误 ejb:“没有可用于处理的 EJB 接收器”的主要内容,如果未能解决你的问题,请参考以下文章

IllegalStateException:没有可用于处理的 EJB 接收器

Java EE EJB 部署错误:容器已注册

带有 JPA/EJB 代码的“分离实体传递给持久错误”

WebSphere 7 中的消息驱动 bean (EJB3)、XA 事务、错误处理

尝试在另一台服务器上调用 EJB 方法时出现 Websphere 错误

weblogic 部署ejb 时出现 错误 domain edit lock