升级,一个时髦而又敏感的话题,我用的firefox现在似乎天天在升级,升完级后发现以前装的插件不见了;刚刚把IE升级到7,今天想让firefox放半天假,在IE7上面好好冲上一把浪,打开一个网页,上面要播放FLASH,IE见状弹出一个错误,说FLASH插件有问题,整个IE关闭然后退出,真是令我好生郁闷——升级并非永远是好事一桩阿。据说Java6的VM优化效果明显,程序在上面那个跑得欢阿,于是有人提议把JBOSS4.0.4GA升级到Java6,一通改环境变量,把JAVA_HOME换成6(我的机器有3个jdk),构建,部署,启动,看着屏幕的字流畅的翻滚着,心里甚为欢欣鼓舞,启动正常,呵呵,mustang,俺来了。试了几个功能,正常,当测试一下登陆的web service时,出错了,控制台翻出了一堆exception:
java 代码
- 09:56:23,115 ERROR [SOAPFaultExceptionHelper] SOAP request exception
- java.lang.UnsupportedOperationException: setProperty must be overridden by all s
- ubclasses of SOAPMessage
- at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
- at org.jboss.ws.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:77)
- at org.jboss.ws.soap.MessageFactoryImpl.createMessageInternal(MessageFac
- toryImpl.java:220)
- at org.jboss.ws.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl
- .java:157)
- at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.jav
- a:215)
- at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServ
- let.java:120)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
每次在console看到这些信息敏感的神经都会为之颤动一下,从日志分析来看,不是app的程序错误,而是jboss的web service底层出错了,经过一番分析,错误原因大抵如下:
Jboss的soap实现的是老的javax.xml.soap.SoapMessage接口,这个接口的setProperty方法在老版本是不需要override的,但是到了Java6,由于Java6的jdk本身自带soap包,而自带的这个包的SoapMessage接口对setProperty方法又强制其实现类要override自身,否则抛出异常:
java 代码
- public void setProperty(String property, Object value)
- throws SOAPException {
- throw new UnsupportedOperationException("setProperty must be overridden by all subclasses of SOAPMessage");
- }
那么余下的事情就很清楚了,在Java6下,JBoss的web service在执行时,加载的javax.xml.soap包是Java6的,而不是app中的包,因此发生了异常。
查了下Java6的发布日期,大概是06年的年底发布,而JBOSS最新的版本4.0.5G早在06年10月就正式推出,JBOSS不会傻到去支持Java6了,一查资料,在JBOSS的一个官方网页上终于看到了佐证:
www.jboss.com/index.html, 这个帖子有个网友问JBOSS是不是支持Java6,JBoss的一个兄弟说没有这方面的行为,估计会在JBoss5的第二个版本才会考虑支持。白忙活了,也闹了个笑话,看来需要语重心长地说上一句——
“级,不是这样升的。”
分享到:
相关推荐
jboss-4.0.5.GA.zip
下载和安装jboss-4.0.4.GA 服务器
jboss-4.2.3.GA_下的jboss-4.2.3.GA_下的jboss-4.2.3.GA_下的jboss-4.2.3.GA_下的jboss-4.2.3.GA_下的
java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object; 错误解决办法
NULL 博文链接:https://lym6520.iteye.com/blog/310725
JBOSS 5.0.0.GA1 安装 部署 手册
jboss-5.1.0.GA 下载地址
NULL 博文链接:https://lionelf.iteye.com/blog/1532452
jboss4.2.2.GA java开发的好帮手
NULL 博文链接:https://8366.iteye.com/blog/502114
赠送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....
jboss-logging.jar
赠送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....
有人向我要,所以传上来! 错误信息:java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger 解决办法:加入jboss-logging-3.1.0.GA.jar就好了。hibernate4日志机制改了
jboss安装 下载后进行解压完成 将下载到的数据库驱动解压,将mysql-connector-java-5.1.7-bin.jar拷贝到 $(JBOSS_HOME)/server/default/lib/下面。 启动:bin/run.sh -b 0.0.0.0
jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/...
此版本在其余地方已经下载不到了哟,但是这个版本还是很好的,jboss-4.2.3.GA,此jboss支持jboss 4.x 开发,jdk需满足5.0及以上的版本,不然会运行出错的,需要的自行下载哈,无解压密码,下载即用
共5个压缩包,全部下载才能够解压 jboss jboss4.2 jboss4.2.2 jboss-4.2.2 jboss-4.2.2.GA............
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
某大牛写的jboss-exp 1. 查看系统名称 java -jar jboss_exploit_fat.jar -i http://192.168.7.84:10081/invoker/JMXInvokerServlet get jboss.system:type=ServerInfo OSName 2. 查看系统版本 java -jar jboss_...