【问题标题】:Web service Response got a schema validation errorWeb 服务响应出现架构验证错误
【发布时间】:2013-04-12 04:25:42
【问题描述】:

我正在使用 glassfish 进行开发。

当我通过我们的 UAT 框中的 SoapUI 发送 SOAP 请求来访问 Web 服务时。我收到以下架构验证错误消息。

无效的 QName 值:无法解析前缀“ns0”

导致错误的行的响应如下所示。

<faultcode>ns0:SC_018</faultcode>

但是在我本地的盒子里。我没有收到验证错误。因为上面导致问题的行看起来像

<faultcode xmlns:ns0="http://****.com">ns0:SC_018</faultcode>

我在想应该有一些不同的 JVM 选项设置可能会导致这个错误?

【问题讨论】:

  • 您的问题到底是什么?
  • 与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
  • 您在哪里看到Invalid QName value: Can't resolve prefix 'ns0' 的消息?另外,&lt;faultcode&gt;ns0:SC_018&lt;/faultcode&gt; 行在哪里?在您的请求或响应中?
  • 在响应中我看到了这个错误并且 ns0:sc_018 也在响应中

标签: web-services soapui


【解决方案1】:

有一个未定义的命名空间前缀 ns0(在您的 XML 请求/响应中)。

因为您说该行出现在具有正确命名空间定义 (xmlns:ns0="http://****.com") 的一台机器上而不是另一台机器上,这可能是服务提供商的问题。

ns0:SC_018 看起来像自定义错误代码,有时构建正确(带有命名空间且未给出错误),有时则不正确(未出现命名空间且出现错误)。

你说这出现在一台机器上而不是另一台机器上,它是同一个客户端吗? SoapUI 是一个 Java 程序,因此它必须在不同的环境中表现得几乎完全一样。此外,这是一个非常具体的问题,似乎不太可能是 JVM 配置问题。

【讨论】:

  • 我的开发机器中的所有客户端都没有这样的错误,但对于 UAT 机器中的所有客户端来说都是不幸的。因为它们连接到不同的数据库,所以客户端是不同的。
  • SC_018 是我在异常规则类中定义的异常类型。我不知道 ns0 是从哪里来的。响应的前几行如下所示 schemas.xmlsoap.org/soap/envelope"> schemas.xmlsoap.org/soap/envelope" xmlns:ns3="w3.org/2003/05/soap-envelope "> ns0:SC_018
  • 所以它们是两种服务,一种有效(开发盒),另一种无效(UAT 盒)?他们有完全相同的实现,除了他们的数据库网址?
  • 同一项目已部署在两台机器的 glassfish 上。唯一的区别是数据库连接
  • 客户呢,他们是一样的吗? (您也可以使用TCPMon 之类的工具来检查实际发送和接收的 XML)。
【解决方案2】:

为了解决这个问题,您已经更新了架构,一旦架构更新成功,然后尝试更新定义。它会被修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多