环境搭建过程中,myeclipse配合jboss使用。奇怪现象是:当我配置myeclipse当中服务器通过。运行测试通过。运行中热部署通过。但是独立运行时报错如下:
java.lang.UnsupportedClassVersionError: javax/****问题。查看jboss AS官方notes发现,jboss4.2以上的版本都必须要求1.5版本以上的jdk。从表面上看是编译器版本不同。但是为啥在myeclipse(6.1.1GA)里面没有问题呢?我们来深入分析一下。先看myeclipse。首先,在myeclipse安装文件夹下面有一个jre文件夹。一看就知道这里给jboss提供了版本支持。然后,我们来看从myeclipse里面启动的时候的日志:
23:06:59,128 INFO [Server] Starting JBoss (MX MicroKernel)...
23:06:59,158 INFO [Server] Release ID: JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
23:06:59,189 INFO [Server] Home Dir: D:/jbossAS
23:06:59,189 INFO [Server] Home URL: file:/D:/jbossAS/
23:06:59,189 INFO [Server] Patch URL: null
23:06:59,189 INFO [Server] Server Name: default
23:06:59,189 INFO [Server] Server Home Dir: D:/jbossAS/server/default
23:06:59,189 INFO [Server] Server Home URL: file:/D:/jbossAS/server/default/
23:06:59,189 INFO [Server] Server Log Dir: D:/jbossAS/server/default/log
23:06:59,189 INFO [Server] Server Temp Dir: D:/jbossAS/server/default/tmp
23:06:59,189 INFO [Server] Root Deployment Filename: jboss-service.xml
23:07:00,641 INFO [ServerInfo] Java version: 1.5.0_11,Sun Microsystems Inc.
23:07:00,641 INFO [ServerInfo] Java VM: Java HotSpot(TM) Client VM 1.5.0_11-b03,Sun Microsystems Inc.
23:07:00,641 INFO [ServerInfo] OS-System: Windows XP 5.1,x86
23:07:02,493 INFO [Server] Core system initialized
23:07:07,170 INFO [WebService] Using RMI server codebase: http://127.0.0.1:8083/
23:07:07,190 INFO [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
我注意到2点。第一,我们发现了这里使用的完全是myeclipse自带环境,另一点这里使用的不是JBOSS_HOME/bin下面的那个run.bat文件。
rem Add -server to the JVM options, if supported
"%JAVA%" -version 2>&1 | findstr /I hotspot > nul
if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server)
这里有java版本检查。至于jboss中errorlevel的定义,不得而知。
通过myeclipse里面服务器配置细则不难发现,其中启动jboss服务器也是通过run.jar这个包。
好了,我们发现IDE里面总是包含自己的版本的jre,所以我们在自己环境搭建过程中,不可忽视在IDE以外的
地方做好这方面的工作。以免在编写文档以及配置测试等其他环境中,造成不必要的麻烦。