Can you try engaging the "addressing" module on the client side and try again?
For example it can be done by the following code segment ServiceClient serviceClient = stub._getServiceClient(); serviceClient.engageModule("addressing"); You need to have addressing module related libraries in your client class path. On Wed, Sep 25, 2013 at 1:24 AM, Harish Kumar <harish_k_s...@yahoo.com>wrote: > Hi, > > I am using Axis2 1.5, to consume WCF service. Axis2 Client is based > on java(1.7) > mentioned below sample code and Error. WCF Service is running in secure > mode and i have generated > client stub directly from wcf url. I have also imported required > certificate into client Keystore. > > When i invoke operation on WCF service, i get error as > org.apache.axis2.AxisFault: > Must Understand check failed for header > http://www.w3.org/2005/08/addressing : Action. > > I googled and tried various solution but did not help. For Example tried > following. > > stub._getServiceClient().getServiceContext().getConfigurationContext().setProperty(AddressingConstants.ADD_MUST_UNDERSTAND_TO_ADDRESSING_HEADERS, > Boolean.FALSE); > > Can anyone suggest, how to fix it? > > Code > ==== > System.setProperty("javax.net.ssl.keyStore", "C:\\Program Files > (x86)\\Java\\jdk1.7.0\\jre\\lib\\security\\cacerts"); > System.setProperty ("javax.net.ssl.keyStorePassword", "changeit"); > System.setProperty("javax.net.ssl.keyStoreType", "jks"); > System.setProperty("javax.net.ssl.trustStore","C:\\Program Files > (x86)\\Java\\jdk1.7.0\\jre\\lib\\security\\cacerts"); > System.setProperty("javax.net.ssl.trustStorePassword","changeit"); > System.setProperty("javax.net.ssl.trustStoreType","jks"); > > SKMSSystemInfoServiceStub stub = new SKMSSystemInfoServiceStub(); > GetUtilitySecurityLevelInfoDocument utilDoc = > GetUtilitySecurityLevelInfoDocument.Factory.newInstance(); > GetUtilitySecurityLevelInfo info = > utilDoc.addNewGetUtilitySecurityLevelInfo(); > GetUtilitySecurityLevelInfoRequest request = info.addNewRequest(); > request.setUtilityCode("utc"); > stub.getUtilitySecurityLevelInfo(utilDoc); > > Error > org.apache.axis2.AxisFault: Must Understand check failed for header > http://www.w3.org/2005/08/addressing : Action > at > org.apache.axis2.engine.AxisEngine.checkMustUnderstand(AxisEngine.java:105) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:171) > at > org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:364) > at > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) > at > org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) > at > org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) > > > Thanks, > Harish >