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

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

云骏奇
2023-03-14

我有一个带有maven的java ee应用程序,当我构建项目然后部署在目标文件夹上生成的ear时,我试图注册到应用程序,所以我必须调用一个区域设置EJB会话(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  

当我从netbeans部署时,它工作得很好,因为我知道项目的结构是在pom文件中的,如下所示:

  <modules>
    <module>myproject-ear</module>
    <module>myproject-ejb</module>
    <module>myproject-web</module>
  </modules>

这是jsp页面:

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

共有1个答案

章乐逸
2023-03-14

由于这个问题没有答案,我现在回答我自己的问题,经过研究,我找到了javax.naming.namingException:查找失败问题的原因,我要查找的EJBConfigUser没有正确地映射到JNDI名称,所以在部署之后,我检查了服务器日志,发现JNDI名称是:

java:global/myproject-ear-1.0/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser

而不是:

java:global/myproject-ear/myproject-ejb-1.0/ConfigUser!myproject.service.ConfigUser
 类似资料:
  • 所以这是我的问题。我正在努力将一个简单的maven应用程序部署到Glassfish服务器中,只是为了检查我的配置是否正确,以便进一步开发。我使用的是NetBeans IDE,但由于它提供的控制台日志很小,几乎无法读取,所以我尝试使用系统终端(我使用的是Fedora)。 我试图部署的应用程序由一个无状态EJB bean(名为DziekanatBean,当前不执行任何操作)和一个Maven POM项目

  • 我目前正在配置我们的开发环境,以便从开源glassfish 3.1版升级到开源glassfish 3.1.2版,我注意到了使用asadmin命令的版本之间的差异: v3.1 deploy --name test:beta-1.0 “c:\tmp\my-long-test-app-war-name.war” 这可以通过http:\\localhost:8080\test访问 v3.1.2 deplo

  • 我有一个基于JHipster的应用程序,我正试图部署在GlassFish(战争)上,但我总是得到错误: 部署期间出错:部署应用程序[LyncisVisualizadorChip]时发生异常:Sun.Reflect.Annotation.TypeNotPresentExceptionProxy。有关详细信息,请参阅server.log。 我研究了很多,发现了类似的问题: 将JHipster应用程序部

  • 调用合约的deploy()方法将其部署到区块链上。其返回的Promise对象 将在成功部署后解析为新的合约实例。 调用: myContract.deploy(options) 参数: options - Object: 用于部署的配置选项,包含以下字段: data - String: 合约的字节码 arguments - Array : 可选,在部署时将传入合约的构造函数 返回值: Object

  • 在LoginStorageProviderFactory中,它有一个来自LoginStorageProvier的导入,在最后一个类中,它有一个来自外部项目(也是我的项目)中的用户类的导入。 如果我把这个用户类移到jar模块中,错误就会消失,并且一切都能很好地工作;但我的目标是将项目与用户在其他项目中的实现和EAR项目分离。 所以,我认为错误的原因是缺少依赖项,Maven不能解决它,也没有报告错误,