3

我正在运行 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 ”中',但是来自这个命名空间的组件不能从模式文档'file:/home/jbossPath/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'中引用。如果这是不正确的命名空间,则可能需要更改“tns2:SimpleSerialiser”的前缀。如果这是正确的命名空间,则应将适当的“导入”标签添加到“文件:/home/jbossPath/mobaq/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd” .

紧接着是一个警告:

WARN [WSDL11Reader] 编码样式“ http://schemas.xmlsoap.org/soap/encoding/ ”不支持:{urn:namespace}doTask

最后显示如下错误:

错误 [STDERR] org.jboss.ws.WSException: 无法获取 java 类型映射:{urn:namespace}ArrayOf_tns2_TagType 错误 [STDERR] at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.buildInputParameter(JAXRPCMetaDataBuilder.java:第266章……

我知道过去在 community.jboss.org 中发布了类似的错误,但用于不同的任务。我不确定提供的补丁是否能解决我的问题,我不知道如何实施提供的补丁。

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

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

任何建议将不胜感激。

4

2 回答 2

1

http://schemas.xmlsoap.org/soap/encoding/是非常古老的 Web 服务堆栈使用的遗留样式(它太糟糕了,甚至微软都反对它)。它存在严重缺陷,因此被排除在大多数现代 Java Web 服务堆栈实现的WS-I 互操作性规范之外。

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

于 2010-01-19T22:39:30.080 回答
0

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

为了开始追逐,我只需将 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 文件一起放置,这就是它不起作用的原因。解决方案就在那里,在我面前是黑白的,但我没有正确实施。当过于密切地关注一个问题太久时,这就是问题所在。

我是个笨蛋。

于 2010-01-20T16:02:55.567 回答