最近写了简单的web service, 用的最简单的annotation的方式,然后部署到JBoss5上去。后来发现如果我用Eclipse生成的web service client去运行这个web service, 在JBoss端会出现以下异常
java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:445)
at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:87)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:169)
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.createSOAPMessage(SOAPFaultHelperJAXWS.java:295)
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.toSOAPMessage(SOAPFaultHelperJAXWS.java:256)
at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:187)
at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:102)
at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:671)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:496)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
后来才知道是JDK6的问题,因为我的JBoss是用JDK6运行的,JDK6下web service用JDK6上才有的@override注释,而我的JBoss不是XXXX-JDK6版本的,并不支持这个注释导致这个问题。
有趣的是用Visual studio产生的Client不会有这个问题,看来要详细弄清楚才行。
当然了这个问题可以用拷贝jar包的方式来解决这个问题。
把${JBOSS_HOME}/lib/中除了getopt.jar, jboss-system.jar, jboss-jmx.jar其他所有的jar拷贝进${JBOSS_HOME}/lib/endorsed,同时拷贝${JBOSS_HOME} /client/目录中的jboss-saaj.jar ,jboss-jaxrpc.jar到${JBOSS_HOME}/lib/endorsed目录下。
分享到:
相关推荐
### 利用JBOSS开发WEB SERVICE:详细指南与实践 #### 核心知识点概览 本篇将深入探讨在JBoss应用服务器上构建Web Service的全面指南,涵盖从安装配置到开发、测试、安全及高级特性应用的全过程。重点包括JBossWS的...
- 直接编辑`/usr/local/JBoss/server/default/deploy/jbossweb.sar/server.xml`文件,但这样做可能影响到备份和更新。 - 更推荐的方法是编辑`bindings-jboss-beans.xml`文件,比如在`/usr/local/JBoss/server/...
10. **JDK 6兼容性**:该版本的JBoss与JDK 6紧密集成,利用了JDK 6的性能改进和新特性,如ScriptEngine API,用于执行脚本语言。 在压缩包中的“jbos-4.2.3.GA”目录下,通常包含以下子目录和文件: - `bin`:存放...
在开始使用JBoss之前,确保系统已安装JDK是非常重要的,因为JBoss是纯Java的Web应用服务器,依赖于JDK来运行。官方下载地址为http://labs.jboss.com/jbossas/downloads/,你可以在这里获取最新的JBoss应用服务器版本...
【ejb-jboss-web实例的workspace】是一个专用于开发和部署EJB(Enterprise JavaBeans)与Web应用程序的工作环境,基于JBoss应用服务器。这个工作空间集合了开发所需的各种组件、配置文件以及源代码,便于开发者进行...
1. **下载JBOSS-5.1.0.GA-jdk6.zip**: JBOSS 5.1.0 GA是Java 6兼容的版本,因此需要下载对应的zip文件。解压缩到指定位置,例如D盘根目录,便于团队成员共享一致的开发环境。 2. **集成Spring框架**: 为了利用...
这个版本,jboss-4.2.3.GA-jdk6,是专为Java 6环境设计的,它在JBoss AS(Application Server)4.x系列中是一个稳定且广泛使用的版本。本文将深入探讨JBoss EJB服务器的核心特性、主要功能以及如何部署和管理EJB组件...
在IT行业中,JBoss是一个广泛使用的Java应用服务器,它提供了许多功能,如部署和管理Web应用程序、事务处理、安全管理等。对于Windows用户来说,将JBoss配置为系统服务可以实现自动启动,避免每次开机时手动开启,...
在`server/default/deploy/jboss-service.xml`中,你可以找到并修改这些端口配置,以避免与其他服务冲突。 3. **数据源配置**:数据源是JBOSS连接数据库的关键部分。在`server/default/conf/jboss-service.xml`或`...
JBoss支持多种JVM版本,默认使用Sun JDK 1.5版,但随着JBoss EAP 4.3及后续版本的发布,也已开始支持Java 6。 #### JBoss的安装与配置 - **安装需求**:为了顺利安装JBoss,系统需预先安装Java Development Kit ...
JBoss AS 4.2.3.GA(Application Server)是Red Hat公司开发的一款开源Java应用服务器,它基于Java EE(Enterprise Edition)5规范,提供了全面的企业级服务,包括EJB(Enterprise JavaBeans)、JMS(Java Message ...
6. **解决方法**:为了确保JDK 1.6与JBoss 5.0以及EJB 3.0和Web Services的兼容性,我们需要确保上述提供的jar包是兼容JDK 1.6的版本,并且正确地替换或添加到JBoss的类路径中。这通常涉及修改JBoss的配置文件(如`...
4. 配置 JBoss 的端口,例如将 HTTP 服务监听端口改为 80,需编辑 `jbossweb-tomcat41.sar\META-INF\jboss-service.xml` 文件。 JBoss 的目录结构包含: 1. bin:启动和停止 JBoss 的脚本。 2. docs:包含示例、...
- `%JBoss_Home%\server\all\deploy`和`%JBoss_Home%\server\default\deploy`目录下的`deploy.last`、`jboss-web-cluster.sar`、`cluster-service.xml`和`ejb3-clustered-sfsbcache-service.xml`。 5. **配置集群...
- 配置JBOSS启动端口,编辑`/usr/local/jboss-5.1.0.GA/server/default/deploy/jbossweb-tomcat55.sar/server.xml`文件,根据需求更改Tomcat的监听端口。 4. **启动和停止JBOSS**: - 使用`bin/run.sh`脚本启动...
在安装过程中,会讲解如何配置环境变量,确保Java Development Kit(JDK)正确安装,并且设置好JBOSS_HOME指向JBoss的安装目录。 接着,教程将深入到JBoss AS的基本管理,如通过命令行或管理控制台来启动、停止、...