原文地址:http://apps.hi.baidu.com/share/detail/39968108
(1).
今天,详细研究了在jdk1.6下,jboss4.2 不能正常工作的问题。
出现了如下错误:
setProperty must be overridden by all subclasses of SOAPMessage。。。
出现这个错误的根源,分析如下:
jbossws-client.jar 中有一个类叫做:SOAPMessageImpl, 它的版本是1.5
jboss-saaj.jar 中有一个类叫做 SOAPMessage(这是一个类,而不是一个接口,需要继承),它的版本也是1.5
setProperty 和 getProperty 方法都实现了。
javaee.jar 中也有 SOAPMessage 类,
setProperty 和 getProperty 方法都没有实现。
javaee.jar 和 jboss-saaj.jar 可以共存,系统自动调用 jboss-saaj.jar。
(经验证,与顺序无关,但是不知道为什么可以很好的工作)
但是,当我们使用jdk1.6时,jdk 中包括了新版本的SOAPMessage,
这个新 SOAPMessage 的 setProperty 方法抛出了 UnsupportedOperationException,出现了版本不兼容的问题。
在jdk1.5中并没有这个类。
尝试的解决方法如下:
(a). 将jboss-4.2.3.GA-jdk6中的jbossws-client.jar,拷贝到客户端
问题不能解决。
原因是SOAPMessageImpl并没有override setProperty 方法。
(b). 将jboss-5.1.0.GA-jdk6中的jbossws-native-core.jar,拷贝到客户端
问题不能解决。
原因是SOAPMessageImpl并没有override setProperty 方法。
(c). 将jboss-6.0.0.M2中的jbossws-native-core.jar,拷贝到客户端
问题部分解决,但是这个解决方案并不能被客户接受。
原因是,jboss-6.0.0.M2 只能支持jdk1.6(当加载到jbossws-native-core.jar中类时,出现了错误)
如果在jdk1.5版本下使用,会出现Bad version number in .class file
(2).
Java endorsed 目录的问题
endorsed 这个单词很少见:金山在线词典上endorse的翻译是:
endorse
vt.
在票据背面签名; 背书
签署, 签注, 批注(公文等), [英]在(驾驶员执照)上注明违章录
承认, 认可, 赞成, 担保
[南非]把(进入城市的黑人)强制送回农村(out)
endorse off
背书证明支取一部分票面金额
endorse over
背书(票据等)将所有权让与(别人)
第四条比较符合这里的意思,这个目录里面放置的jar文件,将有覆盖系统API的功能。可以牵强的理解为,将自己修改后的API打入到虚
拟机指定的启动API中,取而代之。
今天,为了修复Java6对javascript支持中的一个bug,
我覆盖了系统API(sun.org.mozilla.javascript.internal.TokenStream)。
可是,当我吧修改后代码的jar发布到jdk/lib/目录下下的endorsed 目录里后从新运行测试,确发现修改并没有生效。
仔细检查后发现,系统属性并没有如我期望的那样指向javaw.exe所在的jdk目录中,而是指向了额外安装的jre目录下。
我运行的jre javaw.exe位置是:
C:\Program Files\Java\jdk1.6.0_02\bin\javaw.exe
我想,endorsed目录,应该就指向
C:\Program Files\Java\jdk1.6.0_02\lib\endorsed
System.out.println(System.getProperty(“java.endorsed.dirs”));后发现,他意外的指向了:
C:\Program Files\Java\jdk1.6.0_02\jre\lib\endorsed
请参考这里
(3).
如何在 JDK6 下使用 JBoss 5 AS 的 Web Service:
JBoss 5(测试的JBoss版本为jboss-5.0.1.GA-jdk6) 中的 Web Service 实现所使用的 JAX-WS 和 JAXB 版本是 2.1,但 JDK6 中带的
JAX-WS 与 JAXB 版本却是 2.0。如果无视这个问题,使用 wsimport 指令生成 Web Service 客户端将无法工作。要解决该问题,比较
快捷的办法是将 JDK6 的 JAX-WS 和 JAXB 支持升级到 2.1。
升级 JDK6 的 JAX-WS 与 JAXB
在 JBoss 5 的 lib\endorsed 目录中有如下库:
jaxb-api.jar
jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar
jbossws-native-saaj.jar
xercesImpl.jar
将它们拷贝到 JAVA_HOME\lib\endorsed 和 JRE_HOME\lib\endorsed 目录下便可支持 JAX-WS 与 JAXB 2.1。
一、运行环境配置
1. 安装JDK5.0
2. 到jboss官方网下载jboss4.2.3GA.zip,解压即可。下载地址如果项测试jboss是否成功,设置系统变量变量名:JBOSS_HOME 值:JBOSS的解压路径。同时看一下系统变量中有没有变量JAVA_HOME,如果没有定义它,名JAVA_HOME,值:JDK的安装路径,例如:C:\Sun\SDK\jdk.
3. 测试是否成功,双击D:\jboss-4.2.3.GA\bin中的run,开始在doc下运行直到出现09:44:08,875 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 17s:219ms.然后在IE中输入:http://localhost:8080/进入jboss界面,如果有需要密码的地方都是admin。
4. 如果你在jbossIDE中启动测试JBOSS服务不需要设置环境变量。打开Jbuilder2008,它的使用特别方便。选择windowspreferences,出现preferences界面,点击serverruntime environment,点击右边的Add按钮,出现如下图的窗口,
选择jboss的版本点击next,出现
Application server diractory中选择jboss所在的路径。完成。打开windows->show view选择server-servers窗口。
在server窗口点击右键选择new server,
点击运行按钮开始运行,
成功启动在console窗口中最后09:44:08,875 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 17s:219ms。界面,
双击console窗口,
然后在IE中输入:http://localhost:8080/进入jboss界面,如果有需要密码的地方都是admin。启动中若出现8080端口被占用的情况(jboss所用端口如1099,1098 ,8080, 8083等端口)。可以下载端口查看器(Active Ports)进行检查,如果端口被占用就关闭此进程。
分享到:
相关推荐
赠送jar包:jboss-logging-3.4.3.Final.jar; 赠送原API文档:jboss-logging-3.4.3.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.3.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.3.Final....
赠送jar包:jboss-logging-3.4.1.Final.jar; 赠送原API文档:jboss-logging-3.4.1.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.1.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.1.Final....
在Linux环境下配置JBoss6.0与JDK7.0是一项关键的任务,因为这两个组件是许多企业级Java应用的基础。JBoss是一个流行的开源应用服务器,它支持Java EE规范,而JDK则是运行Java应用程序和应用服务器所必需的开发工具包...
在这个环境中,JBoss AS 7.1不支持Java Development Kit (JDK) 1.8,因此在安装和配置时需确保使用的是兼容的JDK版本,如JDK 1.6或1.7。 首先,让我们详细了解一下JBoss AS 7.1.0.Final的关键特性: 1. **模块化**...
通过JMX,JBoss能够管理和监控服务器上的各种服务、组件及资源,包括但不限于EJBs、JMS、事务处理等。这不仅提高了系统的可管理性和可靠性,也简化了应用程序的部署和故障排查过程。 在JBoss的架构中,每一个服务或...
赠送jar包:jboss-logging-3.4.2.Final.jar; 赠送原API文档:jboss-logging-3.4.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.2.Final....
10. **JDK 6兼容性**:该版本的JBoss与JDK 6紧密集成,利用了JDK 6的性能改进和新特性,如ScriptEngine API,用于执行脚本语言。 在压缩包中的“jbos-4.2.3.GA”目录下,通常包含以下子目录和文件: - `bin`:存放...
- **兼容性**:考虑到不同版本之间的兼容性问题,尤其是JDK版本与其他软件之间的兼容性。 - **安全性和性能**:在生产环境中考虑安全性设置和性能优化措施。 #### 五、总结 通过以上步骤,可以成功配置JDK 1.5、...
赠送jar包:jboss-threads-3.1.0.Final.jar; 赠送原API文档:jboss-threads-3.1.0.Final-javadoc.jar; 赠送源代码:jboss-threads-3.1.0.Final-sources.jar; 赠送Maven依赖信息文件:jboss-threads-3.1.0.Final....
### 如何配置JDK与JBoss 在进行Java应用程序开发时,经常需要用到JDK(Java Development Kit)和JBoss这样的应用服务器。本文将详细介绍如何下载并配置JDK和JBoss,帮助开发者顺利搭建开发环境。 #### 一、JDK的...
本文将详细介绍如何在Windows XP系统中配置Eclipse集成开发环境(IDE)的JDK和JBoss服务器,以便于顺利进行Java应用程序的开发和部署。 首先,我们要配置JDK。JDK(Java Development Kit)是Java编程语言的开发工具包...
赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....
JBossTools实践系列:JBossESB服务开发入门
标题中的“jdk1.6与jboss5.x冲突问题的解决方法”指的是在使用Java Development Kit(JDK)1.6版本与JBoss Application Server 5.x版本进行集成时可能出现的兼容性问题。JBoss AS是一款开源的企业级Java应用程序...
这是因为JBoss 6.0是设计在JDK 6环境下运行的,尽管后续的JDK版本可能具有更多的优化和功能,但为了确保与JBoss 6.0的兼容性,开发者需要遵循此要求。安装并设置好JDK6后,确保`JAVA_HOME`环境变量指向了正确的JDK6...
标题 "jdk6 jboss5 webservice bug" 暗示了这是一个关于Java开发环境中,具体是JDK 6和JBoss Application Server 5版本中Web服务(Webservice)出现的问题。这个问题可能是由于某些兼容性、配置错误或者已知的bug...
### Linux下JDK与JBoss的安装及JBoss自启动设置 #### JDK的安装步骤 在Linux环境下安装JDK是部署Java应用的基础。本部分将详细介绍如何在Linux系统上安装JDK。 1. **下载JDK安装包**: - 通常推荐从Oracle官网...
在本案例中,我们关注的是JBoss 5.0版本与EJB 3.0以及Web Services的集成,特别是针对使用Java Development Kit (JDK) 1.6时可能出现的兼容性问题。以下是对这些关键概念的详细解释和解决方案: 1. **EJB 3.0**:...
赠送jar包:jboss-annotations-api_1.3_spec-2.0.1.Final.jar; 赠送原API文档:jboss-annotations-api_1.3_spec-2.0.1.Final-javadoc.jar; 赠送源代码:jboss-annotations-api_1.3_spec-2.0.1.Final-sources.jar;...