2012-09-19 2 views
0

외부 웹 서비스와 대화하고있는 Springsource 툴킷 (즉, @Service 속성)을 사용하여 Java로 작성된 클라이언트가 있습니다 (완전히 분리되어 있습니다. 회사). marshalSendAndReceive 단계에서 content-type이 예상 텍스트/xml 대신 text/html로 돌아오고 있다는 메시지가 "예외 메시지가 될 수 있습니까?"라는 메시지가 나타나면 예외가 발생합니다.Java/spring 웹 서비스 클라이언트의 요청/응답 검사

webservice 자체는 다음 버전의 서비스에 대한 공용 테스트이며 동일한 코드에서 라이브 서비스를 호출하면 정상적으로 작동합니다. 필자가 호출하는이 특정 메서드는 실제 시스템에서는 작동하지만 테스트 시스템에서는 제대로 작동하지 않습니다.

내 솔직히 테스트 시스템에 대한 요청 형식이 올바르지 않습니다. 릴리스 노트에 따라 스키마에서만 응답이 변경되어야하지만 서비스에서 잘못 분석 한 오류를 반환합니다. 내 의뢰인. 릴리스 노트에 따라 변경되지 않은 요청을 포함하여 모든 요청에서이 오류가 발생합니다.

나는 트래픽을 검사하기 위해 Fiddler와 Wireshark를 사용하려고 시도했지만 Fiddler가 그것을 전혀 볼 수는 없다. (나는 이것이 STS의 Tomcat을 프록시로 사용하는 것이 문제라고 생각한다.) Wireshark는 디코드 할 수 없다. HTTPS 항목 (키가 없음). 내가 시도하면 외부 서비스가 403 Forbidden을 반환하므로 HTTP를 사용할 수 없습니다.

저는 원래 개발자가 아니며 Java 개발자도 아닙니다. 나는 숙련 된 .NET 개발자이므로 그와의 유추가 이해 될 것입니다. 그렇지 않으면, 나는 당신의 지시/질문/가능한 도움에 대한 어리 석음입니다. 전임자의 지시에 따라 XmlBeans를 사용하여 WSDL에서 JAR 파일을 만들고이를 참조 된 라이브러리로 추가했지만 올바르게 수행했는지 또는 수행중인 작업인지를 확신 할 수 없습니다. 사물에 눈에 띄는 영향을 미치지 않는 것 같습니다.

이 문제를 어떻게 디버그하여 내 클라이언트 또는 서비스에 문제가 있는지 확인할 수 있습니까?

+0

요청에 'Accept' 헤더를'text/xml' (또는 아마도'application/xml')로 설정 했습니까? –

+0

설정이나 자바 설정이 아니라 어디에서도 볼 수 없습니다. –

+0

전임자가 남긴 webservice 주소와 서비스 지원인 teaam이 제공 한 다른 주소가 모두 잘못되었습니다. VS2012의 '서비스 참조 추가'기능을 사용하면 정확한 주소를 찾을 수있었습니다. 에릭 B의 대답은 정확하지만 내 울타리에도 불구하고. –

답변

0

첫 번째 목표는 피들러가 작동하게하는 것입니다. 어둠 속에서 디버깅하기가 어렵습니다. 그러나 내가 혼란스러워하는 곳은 STS의 Tomcat에서 실행중인 클라이언트에 대해 논의 할 때입니다. 귀하의 클라이언트가 webapp입니까?

SoapUI 같은 다른 도구를 사용하여 서비스가 사용자의 요청에 예상대로 응답하는지 확인 했습니까?

+0

웹 응용 프로그램이지만 관심있는 통신은이 외부 웹 서비스와 통신하는 응용 프로그램입니다. 나는 SoapUI를 살펴볼 것입니다, 나는 결코 전에 들어 본 적이 없었습니다. 나는 인상을 받고있다. 웹 서비스 (큰 서비스, 수백 명의 사용자, 자체 내부 테스트 후 공용 통합 테스트)는 잘못이 아니다. –

+0

SoapUI는 제공된 WSDL을 기반으로 웹 서비스를 테스트 할 수있게 해주는 클라이언트입니다. 필요한 경우 서버의 응답과 데이터 추적을 볼 수 있습니다. 훌륭한 WS 디버깅 도구. 최소한 귀가 트래픽을 검사하고 기대 한 결과와 일치하는지 확인하십시오. –

관련 문제