首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javaee和Wildfly9的Wildfly9

使用Javaee和Wildfly9的Wildfly9
EN

Stack Overflow用户
提问于 2020-07-22 13:49:51
回答 1查看 565关注 0票数 0

你好,当我试图查找jndi名称以便在我的JavaEE项目中使用Wildfly9服务器进行junit测试时,我将面临这个异常:

代码语言:javascript
复制
javax.naming.NameNotFoundException: phenomenon-ejb/ClientSessionBean!utilities.CllientSessionBeanRemote -- service jboss.naming.context.java.jboss.exported.phenomenon-ejb."ClientSessionBean!utilities.CllientSessionBeanRemote"
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)
    at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127)
    at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

这是我编写的junit代码:

代码语言:javascript
复制
public class JunitTester {
    
    @org.junit.Test
    public void Test() throws NamingException {
        Context ctx = new InitialContext();
        CllientSessionBeanRemote gest = (CllientSessionBeanRemote) ctx.lookup("/phenomenon-ejb/ClientSessionBean!"+ CllientSessionBeanRemote.class.getCanonicalName());
        System.out.println(gest.Verify_No_Existence("Multiskan"));
        
    
        }
    
}

这是我的jndi.properties文件:

代码语言:javascript
复制
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=http-remoting://localhost:8080
jboss.naming.client.ejb.context=true
jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false

这是在我部署应用程序时控制台中显示的输出:

代码语言:javascript
复制
java:global/phenomenon-ear/phenomenon-ejb/ClientSessionBean!utilities.ClientSessionBean
    java:app/phenomenon-ejb/ClientSessionBean!utilities.ClientSessionBean
    java:module/ClientSessionBean!utilities.ClientSessionBean
    java:global/phenomenon-ear/phenomenon-ejb/ClientSessionBean!utilities.CllientSessionBeanRemote
    java:app/phenomenon-ejb/ClientSessionBean!utilities.CllientSessionBeanRemote
    java:module/ClientSessionBean!utilities.CllientSessionBeanRemote
    java:global/phenomenon-ear/phenomenon-ejb/ClientSessionBean!utilities.CllientSessionBeanLoacal
    java:app/phenomenon-ejb/ClientSessionBean!utilities.CllientSessionBeanLoacal
    java:module/ClientSessionBean!utilities.CllientSessionBeanLoacal

顺便说一句,握手是简单的,我唯一的问题是如何知道jndiname,或者为什么服务器不认识我写的那个:

代码语言:javascript
复制
INFO: JBoss Remoting version 4.0.5.Beta1
juil. 22, 2020 2:08:34 PM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
INFO: EJBCLIENT000017: Received server version 2 and marshalling strategies [river]
juil. 22, 2020 2:08:34 PM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@757942a1, receiver=Remoting connection EJB receiver [connection=Remoting connection <260479b4>,channel=jboss.ejb,nodename=desktop-k8fvkco]} on channel Channel ID a12ae3eb (outbound) of Remoting connection 651ca769 to localhost/127.0.0.1:8080

任何建议都可能有帮助,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-28 20:20:57

Wildfly命名子系统将条目绑定到以下全局JNDI命名空间:

代码语言:javascript
复制
java:global
java:jboss
java:

然而:

只有java:jboss/导出上下文中的条目可以通过远程JNDI访问。

确保您的业务对象使用@Remote注释“正确地公开”。

检查:命名子系统ConfiguraAtion

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63035771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档