使用 Jboss 和 Wildfly 9.x 运行 java EE 项目时出错
Error while runing java EE project with Jboss and Wildfly 9.x
我在运行我的项目时出错,它已正确部署,但我有这个错误
javax.naming.NoInitialContextException:需要在环境或系统属性中指定class名称,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial
在 javax.naming.spi.NamingManager.getInitialContext(来源不明)
这是我的主要代码:
try {
Context context = new InitialContext();
UserServicesRemote userservicesremote = (UserServicesRemote) context.lookup("behealthy-ear/behealthy-ejb/UserServices!services.UserServicesRemote");
} catch (NamingException e) {
e.printStackTrace();
}
我的规范地址是真实的:
此异常 (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
您可以使用日志的第一行(全局)进行查找。
建议:
也许您应该将 jboss-client.jar 添加到您的客户端环境中。
../bin/client/
错误不是来自实际查找,而是无法正确初始化 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 名称,而不是 java:-namespace 中的名称从日志文件。它看起来像这样:
ejb:backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
我在运行我的项目时出错,它已正确部署,但我有这个错误
javax.naming.NoInitialContextException:需要在环境或系统属性中指定class名称,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial 在 javax.naming.spi.NamingManager.getInitialContext(来源不明)
这是我的主要代码:
try {
Context context = new InitialContext();
UserServicesRemote userservicesremote = (UserServicesRemote) context.lookup("behealthy-ear/behealthy-ejb/UserServices!services.UserServicesRemote");
} catch (NamingException e) {
e.printStackTrace();
}
我的规范地址是真实的:
此异常 (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
您可以使用日志的第一行(全局)进行查找。
建议: 也许您应该将 jboss-client.jar 添加到您的客户端环境中。 ../bin/client/
错误不是来自实际查找,而是无法正确初始化 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 名称,而不是 java:-namespace 中的名称从日志文件。它看起来像这样:
ejb:backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal