Сервер 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 изначально не присутствовало в заголовке SOAP клиента JAX-WS. Поскольку я подумал, что это может быть связано с проблемой, я добавил свойство с помощью следующего кода:
dispatch.getRequestContext().put(
BindingProvider.SOAPACTION_USE_PROPERTY, true);
dispatch.getRequestContext().put(
BindingProvider.SOAPACTION_URI_PROPERTY,
"http://xmlns.test2.com/k2/addressLookup");
И, наконец, вот ответ об ошибке, который я получаю от сервера для запросов JAX-WS и TIBCO BusinessWorks:
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>
Любая помощь или понимание очень ценится! Спасибо!
1 ответ
Заголовки, которые вы показываете, являются заголовками HTTP, заголовки SOAP (если они есть) будут в разделе заголовка конверта SOAP.
Что заставляет вас думать, что проблема связана с заголовками? Может ли быть так, что формулируется содержание SOAP?
Я также думаю, что странно, что вы получаете ответ об ошибке HTML... Я ожидаю SOAP-ответ, содержащий описание НЕИСПРАВНОСТИ.