I experience a problem with a Web Service java client written using Axis2 (1.6.2).
The client generates a SOAP message that is valid (and, by using soapUI, has been verified to result in a valid web service request). Nevertheless the client throws an exception saying "No user value in rampart configuration policy". I have tried "all possible variations (including a) using a client policy.xml that is loaded - makes no difference at all, b) instantiating a Rampartconfig and a Policy object - results in doubled usernameToken entries in SOAP message), and a lot of other ways as well, all without success sofar. I have even run the client in Eclipse in debug mode using source code of wsse4j-1.6.2 and rampart-1.6.2, and only find that somewhere inside there, the exception is thrown and the message key "userMissing" is set. If you know how to overcome this error of an axis2 client, please let me know. 1. The policy section of the wsdl is as follows: " <wsp:Policy wsu:Id="CustomerCreation_policy"> <wsp:ExactlyOne> <wsp:All> <sp:SupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" > <wsp:Policy> <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" /> </wsp:Policy> </sp:SupportingTokens> <wsaw:UsingAddressing/> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> " 2. The client axis2.xml has the following entry for UsernameToken " <module ref="addressing"/> <module ref="metadataExchange" /> <module ref="rampart"/> <parameter name="OutflowSecurity"> <action> <items>UsernameToken Timestamp</items> <passwordType>PasswordText</passwordType> </action> </parameter> " 3. The Java client code contains the following entries having bearing on UsernameToken: " configurationContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(realPath + realPathPostFix + "WEB-INF", realPath + realPathPostFix + "WEB-INF\\conf\\axis2.xml"); customerCreationServiceStub = new CustomerCreationServiceStub(configurationContext); serviceClient = customerCreationServiceStub._getServiceClient(); options = serviceClient.getOptions(); serviceClient.getAxisConfiguration().engageGlobalModules(); serviceClient.engageModule("addressing-1.6.2"); serviceClient.engageModule("rampart-1.6.2"); serviceClient.engageModule("metadataExchange-1.6.2"); // Addressing: options.setProperty(AddressingConstants.WS_ADDRESSING_VERSION, AddressingConstants.Final.WSA_NAMESPACE); options.setProperty(AddressingConstants.INCLUDE_OPTIONAL_HEADERS, Boolean.TRUE); // 2009-05-07, RunoB: Nödvändig för att få med ReplyTo! options.setAction("http://localhost:9080/marginalenaxis2/services/CustomerCreationService"); options.setMessageId(new UUID().toString()); //2012-04-25, RunoB: new EndpointReference endpointReferenceReplyTo = new EndpointReference("http://www.w3.org/2005/08/addressing/anonymous"); options.setReplyTo(endpointReferenceReplyTo); EndpointReference endpointReferenceTo = new EndpointReference(); endpointReferenceTo = new EndpointReference("http://localhost:" + port + "/marginalenaxis2/services/CustomerCreationService"); options.setTo(endpointReferenceTo); // UsernameToken: options.setProperty(RampartMessageData.KEY_CUSTOM_ISSUED_TOKEN, true); options.setProperty(WSHandlerConstants.USER, "aaaaa"); options.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, "com.tieto.ws.axis2.callback.UsernameTokenCallbackManager"); serviceClient.setOptions(options); customerCreationServiceStub._setServiceClient(serviceClient); " Best Regards, Runo Barrdahl Med vänlig hälsning, / Best Regards, Runo Barrdahl, civ ing, tekn lic Tieto Sweden AB, Financial Services mail: runo.barrd...@tieto.com tel (direct): 0709-790 407 / +46-709 790 407 tel (central): 010 481 00 00 / +46-10 481 00 00 fax: 08-86 30 56 / +46-8 86 30 56 web: www.tieto.com