我是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
您的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'