这两天自己练习jboss4.2GA里的web service例子,注解的形式发布web service挺简单,但每个类,都要写一个servlet在web.xml文件里维护起来不烦吗?
坑爹的是最后写测试类调用web service时老是报如下错误:
Exception in thread "main" javax.xml.ws.WebServiceException: Unable to load Provider: Failed to load javax.xml.ws.spi.Provider: com.sun.xml.ws.spi.ProviderImpl at javax.xml.ws.spi.Provider.provider(Provider.java:90) at javax.xml.ws.Service.<init>(Service.java:81) at ws.ConveterService.<init>(ConveterService.java:40) at org.study.ws.ConveterTest.main(ConveterTest.java:22) Caused by: java.lang.IllegalStateException: Failed to load javax.xml.ws.spi.Provider: com.sun.xml.ws.spi.ProviderImpl at javax.xml.ws.spi.ProviderLoader.loadProvider(ProviderLoader.java:96) at javax.xml.ws.spi.Provider.provider(Provider.java:82) ... 3 more Caused by: java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:501) at java.lang.Class.newInstance0(Class.java:350) at java.lang.Class.newInstance(Class.java:303) at javax.xml.ws.spi.ProviderLoader.loadProvider(ProviderLoader.java:91) ... 4 more Caused by: javax.xml.ws.WebServiceException: Error creating JAXBContext for W3CEndpointReference. at com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:188) at com.sun.xml.ws.spi.ProviderImpl.<clinit>(ProviderImpl.java:65) ... 11 more Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions Two classes have the same XML type name "address". Use @XmlType.name and @XmlType.namespace to assign different names to them. this problem is related to the following location: at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr at com.sun.xml.ws.developer.MemberSubmissionEndpointReference this problem is related to the following location: at javax.xml.ws.wsaddressing.W3CEndpointReference$Address at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address at javax.xml.ws.wsaddressing.W3CEndpointReference Two classes have the same XML type name "elements". Use @XmlType.name and @XmlType.namespace to assign different names to them. this problem is related to the following location: at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements com.sun.xml.ws.developer.MemberSubmissionEndpointReference.referenceProperties at com.sun.xml.ws.developer.MemberSubmissionEndpointReference this problem is related to the following location: at javax.xml.ws.wsaddressing.W3CEndpointReference$Elements at private javax.xml.ws.wsaddressing.W3CEndpointReference$Elements javax.xml.ws.wsaddressing.W3CEndpointReference.referenceParameters at javax.xml.ws.wsaddressing.W3CEndpointReference at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:438) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:286) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211) at javax.xml.bind.ContextFinder.find(ContextFinder.java:372) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522) at com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:186) ... 12 more
昨晚到今天早上一直被这问题困扰,后来还是jboss的论坛上找到了答案:
写道
Try to remove following jar files from your clients class path - jaxws-rt.jar
jaxws-tools.jar. This happended to me. Please try this. It might work.
---------------------------------------------------------------------------------------
Yes, it's a classpath problem. The JAX-WS provider is accessed by a Jar service loader. Depending on which jar is in the classpath it either loads the Jbossws one or the Sun RI one: com.sun.xml.ws.spi.ProviderImpl.
It's the two jars pramod_bs described. They only needed for the wsconsume and wsprovide tools, but shouldn't be on the client classpath.
jaxws-tools.jar. This happended to me. Please try this. It might work.
---------------------------------------------------------------------------------------
Yes, it's a classpath problem. The JAX-WS provider is accessed by a Jar service loader. Depending on which jar is in the classpath it either loads the Jbossws one or the Sun RI one: com.sun.xml.ws.spi.ProviderImpl.
It's the two jars pramod_bs described. They only needed for the wsconsume and wsprovide tools, but shouldn't be on the client classpath.
原来是jar包冲突啊,client目录下的jaxws-rt.jar jaxws-tools.jar只是给wsconsume wsprovide工具用的,不需要在测试时放到类路径里面。
这么篇抱怨的文章竟然还有人看那,那就接着再吐槽会。
我自己用的eclipse是最新的java ee Juno Service Release 1版,练习web service是因为在用jboss跑EJB3.0的例子。友情提醒各位,用jboss时一定要选好jboss的版本,否则这些坑爹的乱七八糟、奇奇怪怪的问题会不断骚扰你,jboss产品的版本控制太神奇了,不向前兼容,举个例子,4.0版本有的问题,4.2版本没了,但在5.0中竟然又出现了,就没个统一规划吗?
根据之前网上了解到的经验,个人推荐4.2GA版本做练习,貌似这个反馈的问题较其它版本而言好那么一点点。
相关推荐
wrapper.ntservice.displayname=JBOSS4.2 CASE Service wrapper.ntservice.description=JBOSS 4.2 Service for CASE configuration # Server configuration wrapper.runas.username= wrapper.runas.password= # ...
JBOSS4.2是一款开源的企业级Java应用服务器,它基于Java EE规范,提供了对Web服务、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等众多服务的支持。在进行JBOSS4.2的基本配置时,我们需要关注以下几个...
【标题】:“IIS6整合jboss4.2 配置开发包”涉及的主要知识点是将Internet Information Services (IIS) 6.0与Java应用服务器JBOSS 4.2进行集成,以便在Windows环境中运行Java应用程序。这通常是为了利用IIS的Web...
**ejb3.0 + jboss4.2 实例开发** EJB 3.0 (Enterprise JavaBeans 3.0) 是 Java 平台企业版 (Java EE) 的一部分,它简化了Java 应用服务器中的组件开发。在这个实例开发过程中,我们将探讨如何在 JBoss 4.2 服务器上...
Jboss 4.2 入門
本篇将深入探讨在JBoss应用服务器上构建Web Service的全面指南,涵盖从安装配置到开发、测试、安全及高级特性应用的全过程。重点包括JBossWS的功能介绍、安装流程、基本操作示例(如RPC、文档和消息风格端点)、基于...
### JBoss 4.2 自定义服务器(在同一 IP 启动多个实例)配置方法详解 在企业级应用开发中,为了提高服务器资源利用率以及更好地进行应用程序的隔离与管理,经常需要在同一台物理服务器上部署多个独立的应用服务器...
1. **生成客户端代理类**:基于服务端的WSDL(Web Service Description Language)文件,你可以使用XFire的工具(如xsi或wsimport)来生成客户端所需的代理类。这些类提供了调用远程Web服务的方法。 2. **配置...
- client目录:包含与JBoss客户端通信所需的Java库(JARs)。 - docs目录:存放JBoss服务器的文档和示例。 - lib目录:JBoss启动时加载的一般JAR文件,这些JAR文件可供所有配置共享。 - server目录:包含服务器配置...
### JBoss Application Server 4.2 集群指南知识点概览 #### 一、集群概念与定义 **1.1 引言** 本章节简要介绍了JBoss Application Server集群的概念,强调了集群在提高应用服务可用性及扩展性方面的重要性。 **...
jboss4 JAVA jboss4 JAVA jboss4 JAVA jboss4 JAVA jboss4 JAVA jboss4 JAVA
首先,"jboss-web.xml"是JBoss特定的Web应用程序部署描述符,它是Tomcat中的web.xml在JBoss环境中的扩展。这个文件主要负责定义应用的Servlet、过滤器、监听器以及与EJB交互的JNDI(Java Naming and Directory ...
mac linux 用 JBoss Restful 搭建Restful web service demo
5. 运行app.Test客户端测试类 使用Eclipse 3.4 Ganymede开发EJB3.0的JavaEE应用比较简化和方便。该示例使用EJB 3.0的无状态会话Bean呼叫JPA持久层完成数据库的操作,推荐广大企业级Java程序员项目中使用。 注意:...
- **测试工具**:可以使用`WSDL`工具或`SOAPUI`进行Web服务的测试和调试。 6. **安全性**: - JAX-WS支持安全特性,如WS-Security(Web Services Security),可以添加数字签名和加密以确保数据的安全传输。 7. ...
在`$JBOSS_HOME/server/default/conf/jboss-service.xml`中添加SSL端口配置,并在`$JBOSS_HOME/server/default/conf/server.xml`中配置`<Connector>`标签以启用SSL。 10. **配置双向SSL**: 双向SSL(也称为互认证...
【JBoss Web 2.1.0.GA 知识点详解】 JBoss Web,全称为JBoss Application Server的Web容器部分,是Red Hat公司开发的一款开源Java Servlet和JavaServer Pages(JSP)容器,它是JBoss应用服务器的重要组成部分。在本...
8. **管理工具**:JBoss Web可能提供了图形化的管理控制台,用于监控和管理服务器状态、部署应用程序和配置安全策略。 9. **API支持**:支持各种标准API,如JMX(Java Management Extensions)用于管理和监控,以及...
本文档提供了jboss7开发和部署的详细指导,涵盖了jboss7的下载与安装、Eclipse中配置jboss7、项目部署和JNDI获取等方面的内容,旨在帮助开发者快速上手jboss7,并将jboss4.2版本平滑地移植到jboss7。