【问题标题】:WebLogic server rejecting certain web service requests - seemingly based on SOAP headersWebLogic 服务器拒绝某些 Web 服务请求 - 看似基于 SOAP 标头
【发布时间】:2012-07-19 15:53:35
【问题描述】:

我正在开发一个简单的 Web 服务客户端。我在接收来自服务器的响应时遇到问题。由于支持远程服务器的人不合作,我想尽可能多地了解这个问题,并希望为他们指出正确的方向。

鉴于以下详细信息,是否有可能了解正在发生的事情?是否应该查看特定的 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 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>

非常感谢任何帮助或见解!谢谢!

【问题讨论】:

  • 值得注意 - 当我发送从 JAX-WS 和 BusinessWorks 客户端的 TCP 流量捕获的确切 SOAP 主体时,我在 soapUI 中收到了成功的响应。

标签: web-services soap weblogic jax-ws businessworks


【解决方案1】:

您显示的标头是 HTTP 标头,SOAP 标头(如果存在)将位于 SOAP 信封的标头部分。

是什么让您认为问题与标题有关?会不会是 SOAP 内容的制定方式?

我还认为您收到 HTML 错误响应很奇怪...我希望 SOAP 响应包含 FAULT 描述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2023-02-14
    • 1970-01-01
    • 2016-01-19
    • 2012-05-13
    • 1970-01-01
    相关资源
    最近更新 更多