使用jax-ws生成存根失败

Ivo*_*Ivo 6 jax-ws wso2

我正在尝试使用jax-ws为WSO2 Identity Server管理服务https://xx.xx.xx.xx:9447/services/RemoteUserStoreManagerService?wsdl生成存根.

我已经下载了wsdl,但是当我运行时:

wsimport -p org.wso2 RemoteUserStoreManagerService.xml
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

    [ERROR] operation "updateCredential" has an invalid style
  line 679 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValue" has an invalid style
  line 683 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValues" has an invalid style
  line 692 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValue" has an invalid style
  line 696 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateCredentialByAdmin" has an invalid style
  line 705 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteRole" has an invalid style
  line 739 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUser" has an invalid style
  line 748 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleName" has an invalid style
  line 762 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleListOfUser" has an invalid style
  line 766 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addUser" has an invalid style
  line 780 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addRole" has an invalid style
  line 784 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateUserListOfRole" has an invalid style
  line 788 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValues" has an invalid style
  line 797 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateCredential" has an invalid style
  line 857 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValue" has an invalid style
  line 878 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValues" has an invalid style
  line 887 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValue" has an invalid style
  line 908 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateCredentialByAdmin" has an invalid style
  line 917 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteRole" has an invalid style
  line 1010 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUser" has an invalid style
  line 1019 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleName" has an invalid style
  line 1040 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleListOfUser" has an invalid style
  line 1061 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addUser" has an invalid style
  line 1094 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addRole" has an invalid style
  line 1103 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateUserListOfRole" has an invalid style
  line 1112 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValues" has an invalid style
  line 1121 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateCredential" has an invalid style
  line 1205 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValue" has an invalid style
  line 1226 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValues" has an invalid style
  line 1235 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUserClaimValue" has an invalid style
  line 1256 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateCredentialByAdmin" has an invalid style
  line 1265 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteRole" has an invalid style
  line 1358 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "deleteUser" has an invalid style
  line 1367 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleName" has an invalid style
  line 1388 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateRoleListOfUser" has an invalid style
  line 1409 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addUser" has an invalid style
  line 1442 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "addRole" has an invalid style
  line 1451 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "updateUserListOfRole" has an invalid style
  line 1460 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] operation "setUserClaimValues" has an invalid style
  line 1469 of file:/C:/tmp/RemoteUserStoreManagerService.xml

[ERROR] missing required property "style" of element "operation"


        Failed to parse the WSDL.
Run Code Online (Sandbox Code Playgroud)

这是第一个错误出现的文件第679行周围的wsdl模式(不发布整个模式,因为它相当大):

       <wsdl:operation name="updateCredential">
        <wsdl:input message="ns:updateCredentialRequest" wsaw:Action="urn:updateCredential"/>
        <wsdl:fault message="ns:RemoteUserStoreManagerServiceUserStoreException" name="RemoteUserStoreManagerServiceUserStoreException" wsaw:Action="urn:updateCredentialRemoteUserStoreManagerServiceUserStoreException"/>
    </wsdl:operation>
    <wsdl:operation name="setUserClaimValue">
        <wsdl:input message="ns:setUserClaimValueRequest" wsaw:Action="urn:setUserClaimValue"/>
        <wsdl:fault message="ns:RemoteUserStoreManagerServiceUserStoreException" name="RemoteUserStoreManagerServiceUserStoreException" wsaw:Action="urn:setUserClaimValueRemoteUserStoreManagerServiceUserStoreException"/>
    </wsdl:operation>
    <wsdl:operation name="getUserClaimValuesForClaims">
        <wsdl:input message="ns:getUserClaimValuesForClaimsRequest" wsaw:Action="urn:getUserClaimValuesForClaims"/>
        <wsdl:output message="ns:getUserClaimValuesForClaimsResponse" wsaw:Action="urn:getUserClaimValuesForClaimsResponse"/>
        <wsdl:fault message="ns:RemoteUserStoreManagerServiceUserStoreException" name="RemoteUserStoreManagerServiceUserStoreException" wsaw:Action="urn:getUserClaimValuesForClaimsRemoteUserStoreManagerServiceUserStoreException"/>
    </wsdl:operation>
Run Code Online (Sandbox Code Playgroud)

Mil*_*kic 4

尝试在所有 wsdl 操作中添加输出消息。有趣的是,它wsimport不会抱怨getUserClaimValuesForClaims操作,并且该方法定义了输出消息。

编辑:您可以毫无恐惧地编辑 wsdl,因为这些有问题的方法具有 void 返回类型,因此您可以将任何您想要的内容作为返回类型并忽略它。换句话说,当调用 Web 服务时,您只对输入参数感兴趣,因为这些方法实际上不返回任何内容。因此,请执行以下操作:

  1. 复制 wsdl,例如命名它client.wsdl
  2. 将输出消息添加到所有没有输出消息的操作
  3. 生成 Web 服务客户端client.wsdl不要更改服务!)
  4. 调用 Web 服务方法并忽略这些“有问题”的方法的返回类型