当前位置: 首页 > 知识库问答 >
问题:

javax.naming。NamingException:查找失败-Intellij Idea

陆雅志
2023-03-14

我是java EE的新手。最近我正在使用bean无状态处理一个项目,但我得到了以下错误

豆子:

@Stateless(mappedName = "FlightServiceBean")
public class FlightServiceBean {

    public FlightServiceBean() {
    }

    // data

}

Servlet:

  private FlightServiceBean fs = null;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {

        PrintWriter out = response.getWriter();
        out.println("The flights details servlet has been called ...");

        try
        {
            Context context = new InitialContext();
            fs = (FlightServiceBean) context.lookup("java:global/ejb1/FlightServiceBean!com.airline.service.FlightServiceBean");
// here where I got the exception
        }
        catch (NamingException e)
        {
            System.out.println("Naming Exception has occurred when trying to lookup the flightService EJB");
            e.printStackTrace();
        }

javax.name.nameingException: 在 SerialContext[myEnv={java.name.factory.initial=com.sun.enterprise.name.name.impl.SerialInitContext, java.name.factory.state=com.sun.name.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.name.factory.url.pkgs=com.sun.enterprise.name} [Root exception is javax.name.NameNotFoundException: ejb1]

注意:我使用的是glassfish 5.0和jdk 1.8.0

共有1个答案

权韬
2023-03-14

您的EJB查找不正确。尝试将上面的行更改为

 fs = (FlightServiceBean) ic.lookup("java:comp/env/ejb/FlightServiceBean");

有关EJB查找的更多信息,请参考此链接。

 类似资料:
  • 我正在将一个ejb应用程序从weblogic迁移到jboss。该应用程序正在寻找使用jndi的ejb。我有ejb-jar.xml和jboss.xml到WEB-INF/中,如下所示 jboss.xml ejb-jar.xml 当我运行应用程序时,它会加载。日志如下所示 在我的代码中,用于查找服务的JNDI名称如下所示 当代码尝试使用以下代码在上下文中查找 ejb 时,它会给出异常 serviceNa

  • 如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含

  • 在查找jdbc数据源的JNDI连接时,我遇到以下错误: javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“

  • 我对que的查找失败了。que在wildfly中注册,并使用IronJacamar.xml进行配置 启动时的wildfly输出: ironjacamar配置: ra.xml: 我的例外:

  • 在使用资源引用从服务器上下文获取数据源连接时,我收到了JNDI查找错误。请注意,如果我不使用,则“查找”是有效的。 javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE

  • 问题:似乎无法通过spring在Webphsere服务器中执行jndi查找EJB3。一直找不到我的jndi名称。我看不出我做错了什么。对于Websphere,您是否必须为jndi名称查找添加不同的内容? 堆栈溢出参考问题-EJB3注入Springbean 版本: Spring版本:4.1.2 WebSphereServer版本:7.0.0.27 Spring错误: 创建名为'myLocalEjb'