首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web服务的web客户端

web服务的web客户端
EN

Stack Overflow用户
提问于 2010-01-19 13:50:25
回答 3查看 15K关注 0票数 7

当我从J2SE (桌面)应用程序访问它们时,我有一个工作良好的web服务。要访问此服务,我需要遵循以下命令:

  1. 使用java工具
  2. 通过wsdl链接生成存根类,然后使用生成的类创建服务并运行一个wsdl operations.It,如下所示:

MyWebServiceService webService =新MyWebServiceService();

MyWebService端口= webService.getMyWebServicePort();

webService.run("XYZ");

当我在一个独立的应用程序中使用它时,它会很好地工作。But...when -我尝试以同样的方式访问web服务,但使用生成的存根访问servlet-客户机,得到以下错误:

代码语言:javascript
复制
java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.bind.api.JAXBRIContext
org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeAccessors(EndpointMetaData.java:686)
org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:567)
org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:553)
org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:314)
org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:271)
org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:202)
javax.xml.ws.Service.getPort(Service.java:143...

我搜索谷歌很长时间了,但没有发现任何有用的话题。一些主题展示了从servlet访问web服务的例子,但不幸的是,我不能这样做.(而且不知道是什么导致了问题。

应用服务器:JBoss4.2.3GA

从servlet连接web服务是可能的吗?多么?

我尝试过使用@WebServiceRef注释,但似乎web容器无法注入web服务存根。我认为容器本身不能这样做,因为存根类已经由wsimport工具生成,并且它可以使用这个类访问web服务。

存根类是使用以下命令生成的:

代码语言:javascript
复制
wsimport -keep -p com.myhost.ws http://www.myhost.com/services/MyWebService?wsdl
EN

回答 3

Stack Overflow用户

发布于 2010-01-19 19:34:16

您是否确保您的类路径不包含具有不同版本的多个JAX?在我看来,这个例外就像是版本冲突。应用程序服务器通常有某种“认可的”lib目录,其中包含总是在web应用程序类路径之前添加的JARS。也许您的应用服务器在那里有一个相互冲突的JAX实现?

如果使用Maven对应用程序进行打包,请确保传递依赖关系不会引入不必要的JAX(使用'mvn依赖关系:tree‘来检查这一点)。

票数 10
EN

Stack Overflow用户

发布于 2010-03-03 16:19:25

对我来说,这听起来绝对像是JAXB的冲突。查看您在war中拥有的jaxb版本,并确保它们与Jboss目录中的jaxb jar没有冲突。

票数 1
EN

Stack Overflow用户

发布于 2013-07-11 04:58:04

另外,如果正确安装了jbossws-本机库,则应该从jboss/lib/核可目录中删除以下软件包:

  • jboss-jaxrpc.jar
  • jboss-jaxws-ext.jar
  • jboss-jaxws.jar
  • jboss-saaj.jar

否则,您就无法通过EJB或servlet连接到web服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2093889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档