【问题标题】:Error while runing java EE project with Jboss and Wildfly 9.x使用 Jboss 和 Wildfly 9.x 运行 java EE 项目时出错
【发布时间】:2017-02-21 09:50:35
【问题描述】:

运行我的项目时出现错误,它已正确部署,但我有此错误

javax.naming.NoInitialContextException: 需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial 在 javax.naming.spi.NamingManager.getInitialContext(Unknown Source)

这是我的主要代码:

try {
        Context context = new InitialContext();
        UserServicesRemote userservicesremote = (UserServicesRemote) context.lookup("behealthy-ear/behealthy-ejb/UserServices!services.UserServicesRemote");
    } catch (NamingException e) {
        e.printStackTrace();
    }

我的规范地址是真实的:

【问题讨论】:

  • 您正在运行的代码的 sn-p 到底在哪里?你说“主代码”——这是一个客户端应用程序试图连接到服务器上的远程 EJB 吗?
  • 是的,这是一个客户端应用程序,我正在尝试连接到我的远程 EJB

标签: java jakarta-ee jboss wildfly-9


【解决方案1】:

此异常(NamingException)表示服务名称不正确。部署服务器后,您可以在日志中看到已部署服务的名称。举例:

java:global/backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
java:app/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
java:module/UserBOEJB!org.backend.bo.UserBOLocal
java:global/backend-ear/backend-ejb/UserBOEJB
java:app/backend-ejb/UserBOEJB
java:module/UserBOEJB

您可以使用日志的第一行(全局)进行查找。

【讨论】:

  • 我的 JNDI 名称是正确的,并且在我运行服务器时出现了 jndi 名称的屏幕截图。
  • 你尝试了第一条路线:context.lookup("java:global/behealthy-ear/behealthy-ejb/UserService!services.UserServicesRemote");
【解决方案2】:

建议: 也许您应该将 jboss-client.jar 添加到您的客户端环境中。 ../bin/client/

【讨论】:

    【解决方案3】:

    错误不是来自实际查找,而是无法正确初始化 JNDI 系统。

    当你有一个独立客户端时,你需要像这样添加一个文件 jndi.properties:

    java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
    

    还有一个像这样的文件 jboss-ejb-client.properties:

    remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
    remote.connections=default
    remote.connection.default.host=localhost
    remote.connection.default.port = 8080
    remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
    

    您必须将 jboss-client.jar 添加到类路径并在 ejb:-namespace 中使用正确的 JNDI-name,而不是日志文件中 java:-namespace 中的那个。它看起来像这样:

    ejb:backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2021-03-02
      • 2016-03-08
      • 2013-05-09
      • 1970-01-01
      相关资源
      最近更新 更多