在Eclipse下同时启动Jboss和Tomcat调试

阅读更多

在做基于EJB3.0开发的应用中,如果单独启用Jboss作为调试服务器去调试Web应用是一个非常痛苦的等待过程,因为在Jboss中每一次Web应用的发布和启动都会消耗不少的时间。

 

相对来说,Tomcat是一种这种轻量级Web调试服务器,启动和调试都非常迅速。

 

如果需要同时启动Tomcat和Jboss,除了Web容器的端口冲突问题需要解决之外,还需要注意配置一下Tomcat的调试环境。否则,在获取运行getInitialContext获取EJB Stub的时候,会抛出异常:

 

javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
 at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
 at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
 at javax.naming.InitialContext.init(InitialContext.java:223)
 at javax.naming.InitialContext.(InitialContext.java:197)

 

 

出现这种情况,我们需要將%JBOSS_HOME%\client目錄下的jbossall-client.jar拷贝至%TOMCAT_HOME%\lib目錄下。

 

如果你不想更改Tomcat的配置環境,可以在Eclipse中的Tomcat Launch Configuration界面上,加入这个jbossall_client.jar文件。

 

 在Eclipse下同时启动Jboss和Tomcat调试_第1张图片

 

建议不要直接将这个jar文件拷贝至web应用的lib目录下,这样造成不必要的文件负担。实际生产环境下,如果要做到Tomcat和Jboss分离运行,也要注意这个jbossall_client.jar文件,將其拷贝至Tomcat的lib目录。

你可能感兴趣的:(Jboss,Tomcat,Eclipse,EJB3)