2014-06-11 1 views
0

에 유효하지 있었고, 난이 오류 :하나 이상의 HTTP 요청 헤더 내가 채널 어드바이저 API 내 Java 응용 프로그램을 연결하기 위해 노력하고있어 SOAP 요청

:

여기
<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> 
    <soap:Body> 
     <soap:Fault> 
      <faultcode>soap:Server</faultcode> 
      <faultstring>Server was unable to process request. One or more http request headers was not valid for the SOAP request. </faultstring> 
      <detail/> 
     </soap:Fault> 
    </soap:Body> 
</soap:Envelope> 

내 요청입니다

String requestURL = "https://api.channeladvisor.com/ChannelAdvisorAPI/v7/InventoryService.asmx"; 
String request = 
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:web='http://api.channeladvisor.com/webservices/'>"+ 
    "<soapenv:Header>"+ 
     "<web:APICredentials>"+ 
     "<!--Optional:-->"+ 
     "<web:DeveloperKey>XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX</web:DeveloperKey>"+ 
     "<!--Optional:-->"+ 
     "<web:Password>XXXXXXXXXX</web:Password>"+ 
     "</web:APICredentials>"+ 
    "</soapenv:Header>"+ 
    "<soapenv:Body>"+ 
     "<web:GetInventoryQuantity>"+ 
     "<web:accountID>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX</web:accountID>"+ 
     "<web:sku>XXXXXX-XX-XXX</web:sku>"+ 
     "</web:GetInventoryQuantity>"+ 
    "</soapenv:Body>"+ 
"</soapenv:Envelope>"; 

이상한 점은 SoapUI를 사용하여 동일한 요청을 시도하면 성공적인 응답을 얻을 수 있다는 것입니다.

어떻게 해결할 수 있습니까?

답변

0

웹 서비스가 반환하는 실제 메시지 (강조 표시)를 처리하려고 시도 했습니까?

Server was unable to process request. One or more http request headers was not valid for the SOAP request

SoapUI에서 작동하는 경우 Java 응용 프로그램에서 적절한 요청을 전송하지 않는다는 의미입니다. SoapUI는 요청을 수행 할 때 일부 logs을 기록합니다. HTTP 로그를보고 어떤 헤더를 보는지 알 수 있습니다.

내 생각에 SOAPAction 또는 Content-Type이 누락되었습니다. 헤더를 하나씩 추가하고 웹 서비스가 불평을 멈추는 지 확인하십시오.

+0

안녕하세요, 귀하의 답변에 감사드립니다. 나는 내 실수를 발견하고 이것을 해결했다. 문제는 SOAPAction입니다. 이 줄을 추가하여 이것을 수정했습니다 : connection.setRequestProperty ("SOAPAction", "urlToRequestedAction"); – mclovinn

+0

@mclovinn : 답이 문제를 찾는데 도움이 되었기 때문에 기쁩니다. [승인 됨]으로 표시하는 것을 잊지 마십시오 (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). – Bogdan