Hi Veli-Pekka, When I get the "The server did not recognise the action which it received" exception, it's usually because the operation I'm exposing as a service has the wrong name or something along those lines. I realise its a simplistic answer but perhaps you could give it a go.
Alternatively, you could try debugging your Web Service by placing breakpoints and running the code line by line. Cheers. Regards Sanjay >-----Original Message----- >From: Veli-Pekka Rannila [mailto:[EMAIL PROTECTED] >Sent: 12 March 2008 12:37 >To: [email protected] >Subject: FW: Problem with calling web service > >Hi, > >Sorry for posting again, but I really would like to solve this... > > > >When I'm using the client with rampart included and Web >service's services.xml -file doesn't have rampart included >(see below) I'm receiving "WSDoAllReceiver: Incoming message >does not contain required Security header" error message. When >I include the rampart section in services.xml then I receive >"The server did not recognise the action which it received". >So I think that request goes to the server (the "Incoming >message does not..." error is coming from Web service, I >think) but it just can't find the action. > > > > > >************************************************************ > ><module ref="rampart" /> > ><parameter name="InflowSecurity"> > > <action> > > <items>Timestamp Signature</items> > > <signaturePropFile>service.properties</signaturePropFile> > > </action> > ></parameter> > > > ><parameter name="OutflowSecurity"> > > <action> > > <items>Timestamp Signature</items> > > <user>client</user> > > <signaturePropFile>service.properties</signaturePropFile> > > ><passwordCallbackClass>org.test.handlers.PWCBHandler</passwordC allbackCl >ass> > > <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier> > > </action> > ></parameter> > > > >BR, > >VP > > > >________________________________ > >From: Veli-Pekka Rannila >Sent: 12 March 2008 11:22 >To: [email protected] >Subject: FW: Problem with calling web service > > > >Hi again, > >I have used ADB when generating the codes with wsdl2java if >that is important. > > > >Thanks! > > > >BR, > >VP > > > >________________________________ > >From: Veli-Pekka Rannila >Sent: 12 March 2008 11:06 >To: [email protected] >Subject: Problem with calling web service > > > >Hi all, > >I am using Axis2 v1.3 and Rampart v1.3. I'm running my web >service under Tomcat. I'm using Java 1.5. I should solve this >problem within 2 days so every help is very much welcome! > > > >I put my question here so you can see it easily. Explanations >what I have done you can find below. > > > >Question: > >What is the right syntax for calling a web service when using >rampart and when actionmapping is empty (ie. "") in >wsdl/services.xml? Do I need some other configurations? >Changing the customer's wsdl or customer's web service is not >possible. If someone would be so kind and send me a short >example of working client. Thank you! > > > > > > > >So here are the things that I have done: > >*********************************************** > >I created the service from the wsdl by using wsdl2java. No problems. > >I created the stubs from the wsdl by using wsdl2java. No problems. > >I created the client and I imported the jar file that has the >stubs. No problems. > >I use TCPMon to check out the messages (messages seems to be in order). > > > >When I first run the client I use the following client code >(you can see part of it): > > > >************************************************************ > >System.err.println(" Call starts"); > >CFServiceStub stub = new >CFServiceStub("http://localhost:8082/axis2/services/CFService"); > >//stub._getServiceClient().getOptions().setAction(""); > >stub._getServiceClient().getOptions().setAction("urn:uploadFile"); > >stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(30000); > > > >CFServiceStub.UploadFilein uploadFileinElement = new >CFServiceStub.UploadFilein(); > >CFServiceStub.UploadFileRequest uploadFileRequest = new >CFServiceStub.UploadFileRequest(); > >CFServiceStub.RequestHeader requestHeader = new >CFServiceStub.RequestHeader(); > >requestHeader.setReceiverId("RecId"); > >requestHeader.setRequestId("ReqId"); > >DataHandler dataHandlerAppReq = null; > >uploadFileRequest.setApplicationRequest(dataHandlerAppReq); > >uploadFileRequest.setRequestHeader(requestHeader); > >uploadFileinElement.setUploadFilein(uploadFileRequest); > > > >CFServiceStub.UploadFileout uploadFileOut = >stub.uploadFile(uploadFileinElement); > >System.err.println(" Call ends"); > >************************************************************ > > > >The result is OK so it works and I can get the results. > >Then I try to take Rampart in use. I changed my client code as >follows (paths of AXIS2_CLIENT_REPO and AXIS2_XML are valid): > > > >************************************************************ > >System.err.println(" Call starts"); > >ConfigurationContext configContext = >ConfigurationContextFactory.createConfigurationContextFromFileS >ystem(AXI >S2_CLIENT_REPO, AXIS2_XML); > >CFServiceStub stub = new CFServiceStub(configContext, >"http://localhost:8082/axis2/services/CFService"); > > > >//stub._getServiceClient().getOptions().setAction(""); > >stub._getServiceClient().getOptions().setAction("urn:uploadFile"); > >stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(30000); > > > >CFServiceStub.UploadFilein uploadFileinElement = new >CFServiceStub.UploadFilein(); > >CFServiceStub.UploadFileRequest uploadFileRequest = new >CFServiceStub.UploadFileRequest(); > >CFServiceStub.RequestHeader requestHeader = new >CFServiceStub.RequestHeader(); > >requestHeader.setReceiverId("RecId"); > >requestHeader.setRequestId("ReqId"); > >DataHandler dataHandlerAppReq = null; > >uploadFileRequest.setApplicationRequest(dataHandlerAppReq); > >uploadFileRequest.setRequestHeader(requestHeader); > >uploadFileinElement.setUploadFilein(uploadFileRequest); > > > >CFServiceStub.UploadFileout uploadFileOut = >stub.uploadFile(uploadFileinElement); > >System.err.println(" Call ends"); > >************************************************************ > > > > > >Now I'm getting the error: "The server did not recognise the >action which it received" > >I have tried pretty much everything but I don't manage to get >the client code to work. Below you can find part of my >axis2.xml and wsdl. > >I can make this client code to work if I change services.xml >file of my Web service. But this is not solution because >customer don't want to change their wsdl/services.xml. It is >also valid way to use "" in actionMapping element (according to specs). > > > >This is part of the services.xml with original data in it >(this doesn't work when using rampart): > > > >************************************************************ > ><operation name="uploadFile" mep="http://www.w3.org/ns/wsdl/in-out"> > > <actionMapping>""</actionMapping> > > ><outputActionMapping>http://xxx.org/CFService/CFServicePortType /uploadFi >leResponse</outputActionMapping> > > <faultActionMapping >faultName="FileServiceFaultDetail">http://xxx.org/CFService/CFS ervicePor >tType/uploadFile/Fault/FServiceFaultDetail</faultActionMapping> > ></operation> > > > >************************************************************ > > > >Then I changed the services.xml a little bit and added "urn:uploadFile" >inside actionMapping element. > >This is part of the services.xml with CHANGED data in it (this >works when using rampart) This is not a solution because >customer won't do >that: > > > >************************************************************ > ><operation name="uploadFile" mep="http://www.w3.org/ns/wsdl/in-out"> > > <actionMapping>urn:uploadFile</actionMapping> > > ><outputActionMapping>http://xxx.org/CFService/CFServicePortType /uploadFi >leResponse</outputActionMapping> > > <faultActionMapping >faultName="FileServiceFaultDetail">http://xxx.org/CFService/CFS ervicePor >tType/uploadFile/Fault/FServiceFaultDetail</faultActionMapping> > ></operation> > >************************************************************ > > > >My axis2.xml have the following lines: > > > >************************************************************ > ><module ref="rampart" /> > ><parameter name="OutflowSecurity"> > > <action> > > <items>Timestamp Signature</items> > > <user>client</user> > > <signaturePropFile>client.properties</signaturePropFile> > > ><passwordCallbackClass>org.test.handlers.PWCBHandler</passwordC allbackCl >ass> > > <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier> > > </action> > ></parameter> > > > ><parameter name="InflowSecurity"> > > <action> > > <items>Timestamp Signature</items> > > <signaturePropFile>client.properties</signaturePropFile> > > </action> > ></parameter> > >************************************************************ > > > > > > > >Below you can find part of the wsdl (so you can see that >soapAction=""): > > > >************************************************************ > ><s1:operation name="uploadFile"> > > <s4:operation soapAction="" style="document"/> > > <s1:input> > > <s4:body parts="uploadFilein" use="literal"/> > > </s1:input> > > <s1:output> > > <s4:body parts="uploadFileout" use="literal"/> > > </s1:output> > > <s1:fault name="FileServiceFaultDetail"> > > <s4:fault name="FileServiceFaultDetail" use="literal"/> > > </s1:fault> > ></s1:operation> > >************************************************************ > > > >This is part of message taken from TCPMon: > > > >************************************************************ > >" > >... > >SOAPAction: "urn:uploadFile" > >... > > > ><wsa:To>http://localhost:8082/axis2/services/CFService</wsa:To> > ><wsa:MessageID>urn:uuid:E2EBDFDBE7B1D9743C1205310441034</wsa:MessageID> > ><wsa:Action>urn:uploadFile</wsa:Action> > >... > >" > > > > > >Thanks a lot! > > > >BR, > >VP > > > >
