2016-09-25 8 views
1

最近、私は私たちの顧客から要求を受けました。彼らはサービスを呼び出すWSDLを提供しました。彼らは認証のためにIPホワイトリストを作成しています。私は自分のサーバーに公開IPを与え、ホワイトリストに登録しました。まず、SOAP UIツールを使用してそのサービスをテストしました。問題なく動作しました。その後、私はJAVAコードで統合し、失敗しました。401エラーを取得する石鹸をリクエストしているときに承認されていない

Unable to sendViaPost to url[ https://apps.greystar.com/gsWebService/gsExtract.asmx] org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized at org.apache.axis2.transport.http.impl.httpclient3.HTTPSenderImpl.handleResponse(HTTPSenderImpl.java:343) ~[axis2-transport-http-1.7.1.jar:1.7.1] at org.apache.axis2.transport.http.impl.httpclient3.HTTPSenderImpl.sendViaPost(HTTPSenderImpl.java:213) ~[axis2-transport-http-1.7.1.jar:1.7.1] at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:121) [axis2-transport-http-1.7.1.jar:1.7.1] at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:403) [axis2-transport-http-1.7.1.jar:1.7.1] at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:234) [axis2-transport-http-1.7.1.jar:1.7.1] at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:431) [axis2-kernel-1.7.1.jar:1.7.1] at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:399) [axis2-kernel-1.7.1.jar:1.7.1] at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225) [axis2-kernel-1.7.1.jar:1.7.1] at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150) [axis2-kernel-1.7.1.jar:1.7.1] at com.reputation.r4e.integrator.greystar.ExtractDataStub.greystarExtract(ExtractDataStub.java:300) [classes/:na] at com.reputation.r4e.integrator.recordreader.GreystarLocationImportRecordReader.getGreystarExtractResponse(GreystarLocationImportRecordReader.java:198) [classes/:na] at com.reputation.r4e.integrator.recordreader.GreystarLocationImportRecordReader.process(GreystarLocationImportRecordReader.java:97) [classes/:na] at com.reputation.r4e.integrator.impl.DefaultPipeline.flow(DefaultPipeline.java:33) [classes/:na] at com.reputation.r4e.integrator.impl.DefaultPipeline.process(DefaultPipeline.java:52) [classes/:na] at com.reputation.r4e.integrator.importer.NullImporter.process(NullImporter.java:38) [classes/:na] at com.reputation.r4e.integrator.impl.DefaultPipeline.flow(DefaultPipeline.java:33) [classes/:na] at com.reputation.r4e.integrator.impl.DefaultPipeline.process(DefaultPipeline.java:52) [classes/:na] at com.reputation.r4e.integrator.IntegrationRunner$IntegrationRunnable.run(IntegrationRunner.java:87) [classes/:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]

401という不正なエラーを起こしています。どのようにSOAP UIを介して働いて、なぜJAVAクライアントを介して動作していない。

TCPMonでhttpトラフィックを監視していますが、ヘッダーはすべて同じです。 SOAP UIツールから取得したヘッダーをJAVAクライアントに追加しましたが、まだ運がありません。同じ401の不正なエラーが発生しています。

SOAP UIとJAVA Clientの両方のSOAPリクエストです。

SOAPのUI要求:

POST https://apps.greystar.com/gsWebService/gsExtract.asmx HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: application/soap+xml;charset=UTF-8;action="https://apps.greystar.com/greystarExtract" 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 
Content-Length: 692 
Host: apps.greystar.com 
Connection: Keep-Alive 

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:apps="https://apps.greystar.com/"> 
    <soap:Header/> 
    <soap:Body> 
    <apps:greystarExtract> 
     <apps:axmlVendorCode>VENDOR_CODE</apps:axmlVendorCode> 
     <apps:axmlToken>PASSWORD</apps:axmlToken> 
     <apps:axmlExtractType>PROPERTY_LIST</apps:axmlExtractType> 
     <apps:axmlFormat>XML</apps:axmlFormat> 
     <apps:axmlParameters></apps:axmlParameters> 
    </apps:greystarExtract> 
    </soap:Body> 
</soap:Envelope> 

JAVAクライアント要求:

POST /gsWebService/gsExtract.asmx HTTP/1.1 
Content-Type: application/soap+xml; charset=UTF-8; action="https://apps.greystar.com/greystarExtract 
Accept-Encoding: gzip,deflate 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36[\r][\n] 
Connection: Keep-Alive 
Host: apps.greystar.com 
Transfer-Encoding: chunked 

<?xml version='1.0' encoding='UTF-8'?> 
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
    <soapenv:Header /> 
    <soapenv:Body> 
     <ns1:greystarExtract xmlns:ns1="https://apps.greystar.com/"> 
      <ns1:axmlVendorCode>VENDOR_CODE</ns1:axmlVendorCode> 
      <ns1:axmlToken>PASSWORD</ns1:axmlToken> 
      <ns1:axmlExtractType>PROPERTY_LIST</ns1:axmlExtractType> 
      <ns1:axmlFormat>JSON</ns1:axmlFormat> 
      <ns1:axmlParameters></ns1:axmlParameters> 
     </ns1:greystarExtract> 
    </soapenv:Body> 
</soapenv:Envelope> 

注:私は、SOAP UIのヘッダを見て、Javaクライアントヘッダを追加しました。実際のJAVAクライアントヘッダーは以下の通りです

POST /gsWebService/gsExtract.asmx HTTP/1.1 
Content-Type: application/soap+xml; charset=UTF-8;    
action="https://apps.greystar.com/greystarExtract 
User-Agent: Axis2 
Host: apps.greystar.com 
Transfer-Encoding: chunked 

JAVAクライアントでこれを失敗させる原因は何でしょうか。私がここにこだわっているので、誰かが私の質問に答えてくれますか?事前に

おかげで、予想通り、私は他のサードパーティのライブラリとその作業をしようとした

+0

先サーバー上の証明書が有効か? – BlackFlag

+0

私はそのサービスを利用するユーザーです。私はサーバーコードについて知らない。証明書が無効な場合、SOAP UIを介してどのように作業していますか? – Amar

+0

さて、私はアンドロイドで石鹸を実装しようとした最後の時間は、サーバーの証明書が有効ではないので信用できないときに諦めました。そこで、フレームワークはコミュニケーションを止めることに決めました。あなたのブラウザでwsdlを開こうとするとどうなりますか?有効な証明書がありますか? – BlackFlag

答えて

0

Amar.T。私はCXFとSOAP UI Java APIを試して、期待どおりに動作しています。なぜAPACHE AXIS2と連携していないのか分かりません。

誰かが答えを見つけた場合、なぜAXIS2で動作しないのか解答を投稿してください。

おかげ&よろしく、 Amar.T

関連する問題