0

我有一个需要调用 Web 服务来处理某些内容的 Web 应用程序。像往常一样,我向客户端索要客户端代码,以便我可以根据客户端代码编写代码。

但是,给定的客户端代码是 jar 文件格式。因此,我真的改变了它。我只能叫它。

现在我有一些问题。给出的客户端代码不是最新的,这意味着我使用的客户端代码实际上与真正的 Web 服务不匹配。

这是我用来通过 SOAP UI 触发 Web 服务的 wsdl 的一部分:

<attributeSet>
            <!--Zero or more repetitions:-->
            <attributes>
               <value>mmm</value>
               <attributeID>DP</attributeID>
            </attributes>
         </attributeSet>

当我使用 SOAP UI 根据给定的 wsdl 触发 Web 服务时,它会抛出如下错误:

AttributeSet::validateFieldType (Field 'Password Format' (Field ID 30), data type 'STRING' (Type ID 1), Field value '0', Attribute set Credentials)

因此,我联系了 Web 服务人员,并告诉他们我想要最新的客户端代码。但是,由于他们网站的一些技术问题,他们无法向我们提供最新的客户端代码。他们只是要求我自己更改 wsdl,如下所示:

<attributeSet>
            <!--Zero or more repetitions:-->
            <attributes>
               <value xsi:type="xsd:string">m</value>
               <attributeID>DP</attributeID>
            </attributes>
         </attributeSet>

它在 SOAP UI 调用上的工作。

但是,现在我想用 java 编写代码,我只是使用给定的客户端代码来设置值:

ca1.setAttributeID("DP");
ca1.setValue("m");

我可以在 java 代码中编写什么代码,以使其具有xsi:type="xsd:string"从应用程序调用 Web 服务的时间?

4

1 回答 1

0

如果您有 WSDL,则可以生成 Java 代码。这种生成代码的方法称为自顶向下 Web 服务开发。

如果您使用的是 Maven,请查看来自 wsdl 的 java code 这个问题

如果您使用的是 Eclipse,您还可以通过选择一个新的 Web 服务客户端作为项目类型,从 WSDL 创建一个新的 Web 服务客户端,请参见下面的屏幕截图:

在此处输入图像描述

然后,您将 WSDL 添加到下一个对话框,并按照步骤完成。请参见下面的屏幕截图:

在此处输入图像描述

Netbeans 和其他 IDE 还允许您从 WSDL 生成 java 类。Maven 很好,因为它适用于所有 IDE。

于 2018-08-09T05:06:59.817 回答