0

我目前有一个 .net SOAP Web 服务,我使用设置的请求超时

Server.ScriptTimeout = TIME_OUT;

然后我有java客户端调用所说的web服务。但是,当达到超时时,我得到了这个异常:

Exception in thread "Thread-9" com.sun.xml.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=utf-8 Supported ones are: [text/xml]

发生的事情是 Web 服务返回一个带有 http 超时代码的 html 错误页面(我认为是 503?),这是我的 Java 代码(使用 WSDLimport 生成)没有预料到的。

现在我可以在客户端捕获错误 UnsupportedMediaException 并尝试将其转换为更有意义的内容,但我更愿意在 Web 服务端发送更具体的超时异常。.net Web 服务中是否有在超时发生时发送更好的异常,或者有任何其他方式可以更好地处理这种情况?

编辑:
我正在使用 glassfish 2 发行版中的 WSDLImport。

4

2 回答 2

1

这是 Sun 的 JAX-WS 堆栈的一个已知问题

作为参考,HTTP 500 代码实际上意味着服务器存在内部服务器错误。我不确定为什么 .NET 发送它而不是 HTTP 503 服务不可用。

于 2008-12-05T15:50:54.327 回答
0

您可以使您的网络服务异步。然后在 BeginMyMethod 中使用超时启动计时器,并在 EndMyMethod 方法中引发自定义异常。它将被包装在 SOAP 异常中并照此发送给客户端。

于 2008-12-04T16:35:50.353 回答