tomcat JNDI loking up remote EJBs
我在同一台机器上安装了一个jboss和一个tomcat(jboss 6的端口为8080,tomcat 7的端口为8090),并且我试图使用tomcat的JNDI查找来获取JBoss中的ejb查找。我已经使用jmx控制台检查了我的EJB bean,以确保它们可用。我已将它们表示为@Remote,并且在JMX控制台中,这些EJB适用于
aaaServiceRemote /远程
bbbServiceRemote / remote等
我是tomcat,我把应用程序大战付诸东流,其中包括服务定位器,当应用程序启动时,服务定位器尝试查找EJB并失败。
我已经将jnp-client和jboss-all-client jar文件从jboss / client复制到tomcat / lib文件夹中
我已将jndi.properties文件放入tomcat的webapp目录中,该文件由以下条目组成。
1 2 3
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces |
似乎tomcat试图在其JNDI上下文而不是远程jboss JNDI上下文中查找EJB。
有关如何启用此远程查找的任何帮助,请启用。
似乎您的jndi.properties文件未正确读取。
创建第一个JNDI查找时是否尝试查看这些属性是否传递给InitialContext对象?
调试显示了什么?
- 感谢您的答复Mark(T)ctx.lookup(" aaaServiceBean / remote")中的服务定位代码失败;当在tomcat中调试时,我已经在jboss本身中完成了jndi查找,在其中我使用了上面提到的jndi.properties设置。但是我觉得,由于我们要从tomcat调用远程jboss,因此jndi.properties也应该更改。类似code env.put(Context.PROVIDER_URL," corbaloc:iiop:[email protected]:2809 / Name ?? Service"); code
-
它抛出一个NamingException(javax.naming.NameNotFoundException)
-
我尝试使用没有jndi.properties的代码来初始化Properties并创建上下文,并收到错误消息'SEVERE:WSSERVLET11:无法解析运行时描述符:java.lang.ClassCastException:javax.naming.Reference无法转换为com.MyBean '
-
嗨,我相信您提供的配置是正确的配置。它应该像这样工作:创建初始上下文,并且jnp实现自动为您提供所需的类(这就是您指定NamingContextFactory的原因)。我只是倾向于认为您的InitialContext由于某些原因而无法使用这些属性进行初始化。
-
另一个原因可能是jboss的jndi树不是"同质的",我的意思是绑定的范围取决于放置它的位置,这意味着,例如,您不能仅因为它们驻留而查找DataSource绑定在jndi树的特定位置(我承认我不记得确切的位置,但是您可以在jboss中轻松看到它)。如果您不在Tomcat中,您可以只查找jboss资源吗?您可以尝试使用" main"方法编写一个简单的测试,该方法将调用远程bean并使用您提供的jndi.properties
-
嗨,马克,在将jboss_home / client文件夹中的所有jar完全复制到tomcat的lib中之后,我能够执行远程查找。正如我已经阅读并理解的那样,在jboss 4之后,可用的单个jboss-client jar已分布在多个jar中。拾取仅用于查找的jar变得非常混乱。我尝试使用所有客户端jar,例如jboss-client,jnp-client等,但是直到做出将所有jar移到tomcat的决定之前,查找都失败了。
-
就设计angular而言,这是一种好习惯吗?如果将来需要移动到新的应用服务器,是否还需要将该相应应用服务器的所有客户端jar也移至tomcat lib?很快我可能不得不将ejbs移到jboss 7,所以我想知道。
-
为什么只是不带一个jboss-all-client.jar?我认为这正是它的目的...它应该包含建立连接和执行查找所需的一切
-
标记,在jboss 4之后,如我所见,jboss-client jar仅包含对其他相关jar的引用(已引用100多个jar),这些引用是jboss_home客户端文件夹(community.jboss.org/螺纹/ 167201)