I've created axs 2 web service with rampart ws security in eclipse (here s the tutorial I follow TUTORIAL PAGE - 18-21

I've aplied the policy in service.xml by adding this code AND ENGAGED RAMPART MODULE

<wsp:Policy wsu:Id="UTOverTransport"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    <wsp:ExactlyOne>
        <wsp:All>
            <sp:SignedSupportingTokens
                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:SignedSupportingTokens>
            <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
                <ramp:passwordCallbackClass>axis2wstest.PWCBHandler</ramp:passwordCallbackClass>
            </ramp:RampartConfig>

        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>  

Then I create web service client - here is the code

public static void main(String[] args) throws RemoteException {
          ConfigurationContext ctx;
          ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("C:/Users/Tanya/workspace/testlnclient/WebContent/WEB-INF", null);
        TestlnStub stub = new TestlnStub(ctx);

        Testws cl = new Testws();
        cl.setX(5);
        ServiceClient client =  stub._getServiceClient(); 
        client.engageModule("rampart");    
        //client.addHeader(omSecurityElement);
        org.apache.axis2.client.Options o = client.getOptions();
        o.setPassword("pass");
        o.setUserName("test");
        TestwsResponse resp = stub.testws(cl);

        System.out.println("Response" + resp.get_return());


        // TODO Auto-generated method stub

    }

}

but it gives me an excetion

exception in thread "main" org.apache.axis2.AxisFault: java.lang.NullPointerException
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
    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)
    at axis2wstest.TestlnStub.testws(TestlnStub.java:191)
    at axis2wstest.testlnclient.main(testlnclient.java:35)
有帮助吗?

解决方案

The presence of Utils.getInboundFaultFromMessageContext in the stack trace indicates that the NullPointerException is actually coming from the service and not thrown by the client. Check the server logs to see where the NullPointerException occurs.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top