2014-03-25 4 views
0

EDI 작업을 구현해야합니다. XML 메시지를 만들어서 인증서로 서명하고 Base64으로 인코딩하고 XML 구조로 묶은 다음 서버로 보내야합니다. 메시지를 비누 서비스에 보내려면 HTTPSOAPConnection을 사용하십시오. 내가 만난 문제는 내가 항상 503 service unavailable 오류가 발생한다는 것입니다.
나는 서비스가 시작되지 않았다고 생각했지만 호기심 때문에 나는 SoapUi으로 연락을 시도했다. 같은 메시지를 동일한 서비스 끝점으로 보내면 응답 메시지가 HTTP 200 Ok이됩니다.
이 응답을 분석 한 결과, 서비스 설명서에있는 것처럼 Base64 내부에 xco가 포함되어 있음을 발견했습니다. 이걸 디코딩하면 서버가 나에게 서비스를 사용할 수 없다는 오류 코드를 보냈다는 것을 알게되었습니다.
하지만 어떻게 될 수있는, 내 자바 생성 된 요청을 내가 503 얻을 및 SoapUi 서비스 특정 응답 503에 대한 특정 코드를 포함하는 얻을? 내가 생각할 수있는 유일한 것은, 내 요청에 문제가 있다는 것입니다. 하지만 HTTP 503에 대한 다른 이유는 무엇입니까? 어떻게 오류를 분석 할 수 있습니까 (예 : SoapUi의 MimeHeader을 광산과 비교하면 ...)? 내가 503 응답 코드없이 응답 메시지와 함께,이 "나쁜 응답"을 얻고있다 HTTPSOAPConnectionHTTP 503 서비스를 사용할 수없는 이유가 없습니다. 오류

responseCode = httpConnection.getResponseCode(); 
// let HTTP_INTERNAL_ERROR (500) through because it is used for SOAP faults 
if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) { 
    isFailure = true; 
} 
//else if (responseCode != HttpURLConnection.HTTP_OK) 
//else if (!(responseCode >= HttpURLConnection.HTTP_OK && responseCode < 207)) 
else if ((responseCode/100) != 2) { 
    log.log(Level.SEVERE, 
    "SAAJ0008.p2p.bad.response", 
    new String[] {httpConnection.getResponseMessage()}); 
    throw new SOAPExceptionImpl(
     "Bad response: (" 
     + responseCode 
     + httpConnection.getResponseMessage() 
    ); 
} 

의 라인 245에서 시작 : 내가 당신을 줄 수 한 자세한 정보는 오류가 occures 된 블록입니다. 이 정보가 최소한 추측을하기에 충분할 것으로 기대합니다.

답변

0

잘못된 엔드 포인트 URL이 원인 인 것처럼 보입니다. 엔드 포인트로 사용하는 URL은 실제로 WSDL에 대한 URL입니다. 엔드 포인트 자체는 또 다른 엔드 포인트입니다. 나는 그것을 작동시키지 못했지만 SSL, 인증서, 키 스토어 등의 것들이 원인이다. 나는 먼저 배워야 만한다 : P 그리고 그것은 복잡해 보인다. ...

관련 문제