2010-10-12 70 views
0

我试图运行在主我的java类以下。代码使用存根首先进行身份验证,然后在Microsoft SharePoint站点中恢复列表的集合。调用的SharePoint Web服务使用Axis2客户端进行身份验证

的代码如下:

ListsStub stub = new ListsStub(); 

     HttpTransportProperties.Authenticator auth = new HttpT 

ransportProperties.Authenticator(); 

       auth.setUsername(username); 
       auth.setPassword(pw); 
       auth.setDomain(domain); 
       auth.setHost(host); 

       List schemes = new ArrayList(1); 
       schemes.add(AuthPolicy.NTLM); 
       auth.setAuthSchemes (schemes); 


       stub._getServiceClient().getOptions().setProperty(
       org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, 
       auth); 
       stub._getServiceClient().getOptions().setProperty (HTTPConstants.HTTP_PROTOCOL_VERSION, 
         HTTPConstants.HEADER_PROTOCOL_10); 
       //stub._getServiceClient().getOptions().setProperty (HTTPConstants.PROXY, proxy); 


       String liste = "sharepointlist"; 
       String document2ID; 

        ListsStub.GetListCollection req = new ListsStub.GetListCollection(); 

        ListsStub.GetListCollectionResponse res = null; 
        try { 
         res = stub.getListCollection(req); 
        } catch (RemoteException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

我得到一个401,表示我的登录信息不正确:

org.apache.axis2.AxisFault:传输错误:401错误:未经授权 在组织.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310) 在org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200) 在org.apache.axis2.transport .http.HTTPSender.send(HTTPSender.java:76) 在org.apache.axis2.transport.htt p.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400) 在org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) 在org.apache.axis2.engine.AxisEngine.send(AxisEngine。的java:435) 在org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) 在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 在org.apache。 axis2.client.OperationClient.execute(OperationClient.java:165) at org.apache.axis2.axis2userguide.ListsStub.getListCollection(ListsStub.java:1936) at gov.nasa.jpl.spconnect.MainKickOff.main(MainKickOff。的java:73)

有谁知道我为什么会得到这个?

回答

0

也许你解决了,但......现在我想验证器已经过时了新的抽象类,但我通过这种方式

your_stub_object._setProperty(Stub.USERNAME_PROPERTY, "loginname"); 
your_stub_object._setProperty(Stub.PASSWORD_PROPERTY, "loginsecret"); 

您必须从使用对象获得存根对象传递这个错误当你有一个电话

javax.xml.rpc.Stub your_stub_object=((javax.xml.rpc.Stub)(sp.getService1Soap())); 

sp是myServiceSoapProxy文件。

我通过这种方式验证.NET Web服务。我编码的.NET服务是基本的身份验证。如果你有401这意味着登录失败,如果你有某个地方403它的ssl相关。

我希望这可以帮助乡亲。

相关问题