【问题标题】:RPC/Encoded Jboss problemRPC/Encoded Jboss 问题
【发布时间】:2010-01-19 18:12:41
【问题描述】:

我正在运行 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:SimpleSerializer'。它是 检测到“tns2:SimpleSerialiser” 在命名空间中 'http://targetnamespace2.com',但是 此命名空间中的组件不是 可从架构文档中引用 '文件:/home/jbossPath/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'。 如果这是不正确的命名空间, 也许是前缀 'tns2:SimpleSerializer' 需要是 改变了。如果这是正确的 命名空间,然后是适当的 'import' 标签应该被添加到 'file:/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

最后显示如下错误:

错误 [标准错误] org.jboss.ws.WSException:不能 获取 java 类型映射: {urn:namespace}ArrayOf_tns2_TagType 错误 [STDERR] 在 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 文件,所以这就是我要问的原因。

任何建议将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我现在就试试建议的解决方案。干杯。
    【解决方案2】:

    我终于通过实施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 客户端 jar 文件一起放置,这就是它不起作用的原因。解决方案就在那里,在我面前是黑白的,但我没有正确实施。这就是长时间关注一个问题时的问题。

    我是个笨蛋。

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 1970-01-01
      • 2011-05-30
      • 2010-11-24
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      相关资源
      最近更新 更多