使用deploy命令在glassfish上部署maven项目

Bil*_*KAR 8 java jsp glassfish java-ee maven

我有一个带有maven的java ee应用程序,当我构建项目然后部署在目标文件夹上生成的ear时,我尝试注册到应用程序,所以我必须调用locale EJB Session(ConfigUser),我收到以下错误:

javax.naming.NamingException: Lookup failed for 'java:global/myproject-ear/myproject-ejb-1.0/UserFacade!myproject.service.ConfigUser' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: myproject-ear] at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:411) at javax.naming.InitialContext.lookup(InitialContext.java:411) at org.apache.jsp.index_jsp._jspService(index_jsp.java:79) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) at  
Run Code Online (Sandbox Code Playgroud)

我尝试使用该命令进行部署call asadmin --host localhost --user admin deploy --force "C:\myproject\target\myproject-ear-1.0.ear",我也尝试从glassfish管理控制台进行部署,但问题仍然存在.

当我从netbeans部署时,它工作正常,知道项目是在pom文件中构建的,如下所示:

  <modules>
    <module>myproject-ear</module>
    <module>myproject-ejb</module>
    <module>myproject-web</module>
  </modules>
Run Code Online (Sandbox Code Playgroud)

这是jsp页面:

Context c = new InitialContext();
ConfigUser configUser = (ConfigUser) c.lookup("java:global/myproject-ear/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser");
Run Code Online (Sandbox Code Playgroud)

Bil*_*KAR 1

由于这个问题没有答案,我正在回答我自己的问题,经过研究我找到了问题的原因javax.naming.NamingException: Lookup failed,我正在寻找的EJBConfigUser没有正确映射到JNDI名称,所以在部署之后我检查服务器日志,JNDI 名称为:

java:global/myproject-ear-1.0/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser
Run Code Online (Sandbox Code Playgroud)

代替 :

java:global/myproject-ear/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser
Run Code Online (Sandbox Code Playgroud)