RPC /编码Jboss问题

时间:2010-01-19 18:12:42

标签: java web-services jboss wsdl jax-rpc

我正在运行jboss-4.2.1.GA来生成WS请求。

我在JWSDP-2.0 / JAXRPC的帮助下创建了WS客户端。我已将客户端部署到Jboss,我现在正在尝试发送请求。

当我尝试初始化客户端服务时:javax.xml.rpc.Service service = servicefactory.createService(new URL(wsdlURL), serviceQN),Jboss开始抱怨。

Jboss生成的错误是:

  

错误[JBossXSErrorHandler]   JBossWS_targetnamespace1.com7796329154971783225.xsd [域:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve.4.2]::Message=src-resolve.4.2:   解析组件时出错   'tns2:SimpleSerialiser'。它是   检测到'tns2:SimpleSerialiser'   在命名空间中   'http://targetnamespace2.com',但是   此命名空间中的组件不是   可从架构文档中引用   '文件:/home/jbossPath/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'。   如果这是不正确的命名空间,   也许是前缀   'tns2:SimpleSerialiser'需要   改变。如果这是正确的   命名空间,然后是合适的   应该添加'import'标签   '文件:/home/jbossPath/mobaq/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'

随后发出警告:

  

WARN [WSDL11Reader]编码样式   'http://schemas.xmlsoap.org/soap/encoding/'   不支持:   {瓮:命名空间} doTask

最后,显示以下错误:

  

错误[STDERR]   org.jboss.ws.WSException:不能   获取java类型映射:   {瓮:命名空间} ArrayOf_tns2_TagType   错误[STDERR] at   org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.buildInputParameter(JAXRPCMetaDataBuilder.java:266)       ...       ...

我知道过去曾在community.jboss.org上发布过similar error ,但其他任务不同。我不确定提供的补丁是否能解决我的问题,我不知道如何实现提供的补丁。

除此之外,我发现有人遇到类似问题:JAX-RPC in JBoss 4.2.3但建议的解决方案对我不起作用。

我也知道JbossWS不支持RPC / Encoded,但我使用jboss作为我的解决方案。 有没有办法让我解决这个问题,难道我不能让Jboss创建客户端服务来发送请求吗?我不确定是否有可能请求RPC / Literal WSDL文件,这就是我要问的原因。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

http://schemas.xmlsoap.org/soap/encoding/是非常古老的Web服务堆栈使用的遗留样式(非常糟糕,even Microsoft recommend against it)。它存在严重缺陷,因此被排除在大多数现代Java Web服务堆栈实现的WS-I interoperability spec之外。

我知道处理这些旧编码的唯一java堆栈是Axis 1,它本身存在严重缺陷,但可能是您唯一的选择。您应该能够从JBoss内部将Axis作为客户端运行。

答案 1 :(得分:0)

我终于通过实施JAX-RPC in JBoss 4.2.3帖子建议的解决方案解决了这个问题:

  

要跳转到追逐,我只需将Axis 1.4中的以下JAR放入我的EAR的lib目录中:   axis.jar,axit-ant.jar,commons-discovery-0.2.jar,jaxrpc.jar,saaj.jar,wsdl4j-1.5.1.jar

我正在做的是将上面的jar放在我自己的WS Client jar文件中,这就是为什么它不起作用。解决方案在我面前,黑色和白色,我没有正确实现它。这是一个问题,因为太长时间地关注某个问题。

我是个笨蛋。