我在查找ejb时遇到了问题。在servlet中一切正常,但我需要从远程klient连接到ejb。
在部署控制台日志中:
java:global/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
java:app/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
java:module/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
java:jboss/exported/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
java:global/easymenu-webappEAR/EasyMenu/CounterBean
java:app/EasyMenu/CounterBean
java:module/CounterBean我在webapp中有ejbmodule (我不知道它是如何分开的)
获取上下文:
public static InitialContext getInitialContext(String url) throws NamingException {
Properties properties = new Properties();
properties.setProperty(Context.URL_PKG_PREFIXES,
"org.jboss.ejb.client.naming");
properties.setProperty(Context.PROVIDER_URL, url);
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
properties.setProperty(Context.SECURITY_PRINCIPAL, "pch");
properties.setProperty(Context.SECURITY_CREDENTIALS, "peterch");
return new InitialContext(properties);
}查找:
CounterBeanRemote cbr = (CounterBeanRemote) ServiceLocator
.getInitialContext("remote://localhost:8080").lookup("java:app/EasyMenu/CounterBean!"
+ CounterBeanRemote.class.getName());
System.out.println("Result: " + cbr.getMessage());异常
mar 20, 2013 10:27:04 PM org.xnio.Xnio <clinit>
INFO: XNIO Version 3.0.3.GA
mar 20, 2013 10:27:04 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.0.3.GA
mar 20, 2013 10:27:04 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 3.2.3.GA
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING]
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at sk.jbase.projects.easymenu.client.EasyMenuClient.getInitialContext(EasyMenuClient.java:58)
at sk.jbase.projects.easymenu.client.EasyMenuClient.main(EasyMenuClient.java:38)
Caused by: java.lang.RuntimeException: Operation failed with status WAITING
at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:89)
at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104)
... 6 more发布于 2013-05-29 16:03:20
您使用的是哪个JBoss版本?在JBoss 7.1中,缺省的远程端口是4447,您应该使用紧跟在java:jboss/exported/之后的URL。如果使用"org.jboss.ejb.client.naming“,则需要使用"ejb:”前缀作为URL和属性,这些属性通常位于jboss-ejb-client.properties文件中。
发布于 2014-03-21 01:23:15
我在JBOSS的上一个夜间构建版本7.2中遇到了同样的问题。当我刚刚将类路径中的jboss-client.jar恢复到一个较旧的版本时,它就开始出色地工作了。
一旦修复了上面的URL和查找以及jboss-client.jar,就应该可以了。
https://stackoverflow.com/questions/15535310
复制相似问题