JBoss - 应用程序是否必须在JBOSS运行的同一jdk下编译?

dcp*_*dcp 1 java jboss java-ee

我对JBOSS有点困惑,并在不同的JDK下运行它.例如,假设我正在运行JBOSS 5.1,在启动它之前,我将JAVA_HOME设置为指向JDK5.我们还假设我的Java EE应用程序是在JDK6下编译的.如果我将Java EE应用程序(在JDK6下编译)部署到JBOSS,当我尝试查找我的EJB时,会出现以下错误:

javax.naming.NameNotFoundException: tc_test_project not bound
Run Code Online (Sandbox Code Playgroud)

但是,如果我在JDK5下重新编译我的代码并重新部署它,它可以正常工作并且能够查找EJB.

同样,我可以将JAVA_HOME设置为JDK6并启动JBOSS,我的代码(在JDK6下编译)将在该场景下运行正常(它能够找到EBJ等).

所以你的Java EE应用程序似乎需要在JBOSS服务器运行的同一个JAVA_HOME下编译,或者我误解了什么?只想得到确认,谢谢.

rod*_*oap 6

必须使用用于启动JBOSS的相同或更低版本的JDK编译应用程序.这是因为应用程序将使用相同的JVM.