Hello Im was trying to execute a WS, in Axis 1.4, with a UsernameToken but Im having problems and I dont know why. The WS without security its working correctly
The process what Im doing is: 1.- Deploy the WS like: java org.apache.axis.client.AdminClient -lhttp://localhost:8080/repeat/services/AdminService server-config.wsdd 2.-(Once time) generate the Client classes with Wsdl2Java java org.apache.axis.wsdl.WSDL2Java -o . -Nhttp://localhost:8080/repeat/services/EchoRepeat com.repeat.client http://localhost:8080/repeat/services/EchoRepeat?wsdl 3.- In the EchoRepeatSoapBindingStub, before to make the invoke y put the properties: _call.setUsername("Ignacio"); _call.setPassword("sign"); _call.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, com.repeat.client.PWCallback.class); 4.- Run the WS java -Daxis.ClientConfigFile=client_config.wsdd com.repeat.client.Main TB-Solutions (Here its right if its hasn't security), if it has security, sais "WSDoAllReceiver: Request does not contain required Security header" What is wrong either in the process either code? Any help is welcome Thanks to all. [1 / 4] My server-config.wsdd is: ------------------------------------------------------------------------------------- <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <globalConfiguration> <parameter name="sendMultiRefs" value="true"/> <parameter name="disablePrettyXML" value="true"/> <parameter name="adminPassword" value="admin"/> <parameter name="attachments.Directory" value="C:\Servers\apache-tomcat-5.5.25\webapps\axis\WEB-INF\attachments"/> <parameter name="dotNetSoapEncFix" value="true"/> <parameter name="enableNamespacePrefixOptimization" value="false"/> <parameter name="sendXMLDeclaration" value="true"/> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> <parameter name="sendXsiTypes" value="true"/> <requestFlow> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="session"/> </handler> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="request"/> <parameter name="extension" value=".jwr"/> </handler> </requestFlow> </globalConfiguration> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <service name="EchoRepeat" provider="java:RPC" style="document" use="literal"> <requestFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver"> <parameter name="passwordCallbackClass" value="com.repeat.client.PWCallback"/> <parameter name="action" value="UsernameToken"/> </handler> </requestFlow> <parameter name="allowedMethods" value="*"/> <parameter name="scope" value="application"/> <parameter name="className" value="com.repeat.main.EchoRepeat"/> </service> [2 / 4]Mi client_config.wsdd is: ------------------------------------------------------------------------------------- <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="EchoRepeat"> <requestFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllSender" > <parameter name="action" value="UsernameToken"/> <parameter name="user" value="Ignacio"/> <parameter name="passwordType" value="PasswordText" /> <parameter name="passwordCallbackClass" value="com.repeat.client.PWCallback"/> </handler> </requestFlow> </service> </deployment> [3 / 4] Mi WS calling is: ------------------------------------------------------------------------------------- { EchoRepeatservice = null; EngineConfiguration config = createClientConfig(); EchoRepeatServiceLocator locator = new EchoRepeatServiceLocator(config); locator.setEchoRepeatEndpointAddress("http://zaz-elorriagai.tb-solutions.com:8080/repeat/services/EchoRepeat"); service = locator.getEchoRepeat(); System.out.println(service.echo(args[0])); } public static EngineConfiguration createClientConfig(){ SimpleProvider clientConfig=new SimpleProvider(); Handler sessionHandler=(Handler)new SimpleSessionHandler(); SimpleChain reqHandler=new SimpleChain(); SimpleChain respHandler=new SimpleChain(); reqHandler.addHandler(sessionHandler); respHandler.addHandler(sessionHandler); Handler pivot=(Handler)new HTTPSender(); Handler transport=new SimpleTargetedChain(reqHandler, pivot, respHandler); clientConfig.deployTransport(HTTPTransport.DEFAULT_TRANSPORT_NAME,transport); return clientConfig; } [4 / 4] The stack error: ------------------------------------------------------------------------------- AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: WSDoAllReceiver: Request does not contain required Security header faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:zaz-elorriagai WSDoAllReceiver: Request does not contain required Security header at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.handlers.SimpleSessionHandler.doClient(SimpleSessionHandler.java:173) at org.apache.axis.handlers.SimpleSessionHandler.invoke(SimpleSessionHandler.java:157) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.repeat.client.LoginWSSoapBindingStub.echo(LoginWSSoapBindingStub.java:224) at com.repeat.client.Main.main(Main.java:21) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
