2013-04-07 50 views
0

我已經在Eclipse中創建AXS 2 web服務與壁壘WS安全性(這裏S中的教程中,我跟隨TUTORIAL PAGE - 18-21NullPointerException異常在我的軸2的Web服務的客戶端安全壘

我已經應用。查閱全文在service.xml中和政策中加入以下代碼ENGAGED壁壘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> 

然後,我創建Web服務客戶端 - 這裏是代碼

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 

    } 

} 

但我T得到我的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) 

回答

2

Utils.getInboundFaultFromMessageContext在堆棧跟蹤的存在表示NullPointerException實際上是從服務,而不是來自客戶端拋出。檢查服務器日誌以查看NullPointerException發生的位置。