2012-07-19 1 views
0

간단한 웹 서비스 클라이언트를 개발 중입니다. 서버에서 응답을받는 데 문제가 있습니다. 원격 서버를 지원하는 사람들은 협동 적이 지 않으므로 최대한 문제에 대해 배우고 바라는 방향으로 올바른 방향을 제시하고자합니다.WebLogic 서버가 특정 웹 서비스 요청을 거부 함 - SOAP 헤더를 기반으로 한 것 같습니다.

다음 세부 정보가 주어지면 진행 상황을 파악할 수 있습니까? 특정 SOAP 프로토콜 설정을 살펴 봐야합니까?

TcpTrace를 사용하여 아웃 바운드 및 인바운드 트래픽을 캡처했습니다.

soapUI에서 요청을 보내면 생성 된 SOAP 헤더입니다. 이 메시지 은 (는)에 성공합니다. 유효한 응답을 받았습니다.

POST /l2/k2/AddressLookup HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "http://xmlns.test2.com/k2/addressLookup" 
User-Agent: Jakarta Commons-HttpClient/3.1 
Host: localhost:7003 
Content-Length: 434 

TIBCO BusinessWorks에서 요청을 보내면 생성 된 SOAP 헤더입니다. 이 메시지 에 실패합니다. HTTP 500 내부 서버 오류이 표시됩니다.

POST /l2/k2/AddressLookup HTTP/1.1 
content-type: text/xml; charset="utf-8" 
SoapAction: "http://xmlns.test2.com/k2/addressLookup" 
Connection: close 
User-Agent: Jakarta Commons-HttpClient/3.0.1 
Host: localhost:7003 
Content-Length: 368 

매우 기본이 아닌 필수 JAX-WS 클라이언트로부터 요청을 보내면 생성 된 SOAP 헤더입니다. 이 메시지는 도 표시되지 않습니다. - HTTP 500 내부 서버 오류이 표시됩니다.

POST /l2/k2/AddressLookup HTTP/1.1 
Content-type: text/xml;charset="utf-8" 
Soapaction: "http://xmlns.test2.com/k2/addressLookup" 
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
User-Agent: JAX-WS RI 2.1.6 in JDK 6 
Host: localhost:7003 
Connection: keep-alive 
Content-Length: 389 

나는이 SOAPAction 속성이 처음 JAX-WS 클라이언트의 SOAP 헤더에 존재하지 않는 것을주의해야한다.

 dispatch.getRequestContext().put(
      BindingProvider.SOAPACTION_USE_PROPERTY, true); 

     dispatch.getRequestContext().put(
      BindingProvider.SOAPACTION_URI_PROPERTY, 
      "http://xmlns.test2.com/k2/addressLookup"); 

그리고 마지막으로, 여기에 내가 모두 JAX-WS 및 TIBCO 비즈니스 웍스 요청에 대해 서버에서 나타나는 오류 응답이 : 나는이 문제에 관련이있을 거라고 생각하기 때문에, 나는 다음과 같은 코드를 통해 속성을 추가 :

HTTP/1.1 500 Internal Server Error 
Connection: close 
Date: Thu, 19 Jul 2012 14:25:07 GMT 
Content-Length: 883 
Content-Type: text/html 
Content-Encoding: identity 
X-Compressed-By: com.planetj.servlet.filter.compression.CompressingFilter/1.7 
SOAPAction: "" 
X-Powered-By: Servlet/2.5 JSP/2.1 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN"> 
<HTML> 
<HEAD> 
<TITLE>Error 500--Internal Server Error</TITLE> 
<META NAME="GENERATOR" CONTENT="WebLogic Server"> 
</HEAD> 
<BODY bgcolor="white"> 
<FONT FACE=Helvetica><BR CLEAR=all> 
<TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all> 
<FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 500--Internal Server Error</H2> 
</FONT></TD></TR> 
</TABLE> 
<TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica" SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol -- HTTP/1.1</i>:</H3> 
</FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.5.1 500 Internal Server Error</H4> 
</FONT><P><FONT FACE="Courier New">The server encountered an unexpected condition which prevented it from fulfilling the request.</FONT></P> 
</FONT></TD></TR> 
</TABLE> 

</BODY> 
</HTML> 

물론 어떤 도움이나 통찰력에 감사드립니다! 감사!

+0

주목할 가치 - JAX-WS 및 BusinessWorks 클라이언트의 TCP 트래픽에서 캡처 한 정확한 SOAP 본문을 보내면 soapUI에서 성공적인 응답을 받았습니다. – grt3kl

답변

0

표시 할 헤더는 HTTP 헤더이며, SOAP 헤더 (있는 경우)는 SOAP 봉투의 헤더 섹션에 있습니다.

문제는 헤더와 관련이 있다고 생각합니까? SOAP 컨텐츠가 공식화되는 방식 일 수 있습니까?

나는 또한 HTML 오류 응답을받는 것이 이상하다고 생각한다 ... 나는 FAULT 설명을 포함하는 SOAP 응답을 기대한다.