Creating stubs with jax-ws fails

I am trying to create a stub using jax-ws for the WSO2 Identity Server admin service https: //xx.xx.xx.xx: 9447 / services / RemoteUserStoreManagerService? Wsdl .

I downloaded wsdl, but when I ran:

wsimport -p org.wso2 RemoteUserStoreManagerService.xml 

I get the following errors:

  [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. 

Here's the wsdl schema around line 679 of the file in which the first error appears (do not publish the whole schema because it is quite large):

  <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> 
+6
source share
2 answers

Try adding an output message to all wsdl operations. It is interesting to note that wsimport does not complain about the getUserClaimValuesForClaims operation, and this method determines the output message.

EDIT . You can edit wsdl without fear because these problematic methods have a void return type, so you can put whatever you want as the return type and just ignore it. In other words, when you call the web service, you are only interested in the input parameters, since these methods actually return nothing. Therefore, follow these steps:

  • Make a copy of wsdl, for example, name it client.wsdl
  • Add an output message to all operations that do not have it
  • Create a web service client from client.wsdl ( not )!
  • Call the web service methods and ignore the return type for these "problematic"
+3
source

Milen Mikik's answer was excellent and allowed me to find the right solution. I thought I would give an example of how to do what he suggested. Pay attention to the list of errors that errors fall in pairs:

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

Only the first 2 errors were included in the OP wsdl sample, but the solution was the same for everyone. The result will be:

 <wsdl:operation name="updateCredential"> <wsdl:input message="ns:updateCredentialRequest" wsaw:Action="urn:updateCredential"/> <wsdl:output message="" /> <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:output message="" /> <wsdl:fault message="ns:RemoteUserStoreManagerServiceUserStoreException" name="RemoteUserStoreManagerServiceUserStoreException" wsaw:Action="urn:setUserClaimValueRemoteUserStoreManagerServiceUserStoreException"/> </wsdl:operation> 
0
source

Source: https://habr.com/ru/post/923943/


All Articles