2010-01-08 68 views
1

我处于试图访问以HTML格式包装答案的SOAP服务的特殊位置。这是服务提供商(SourceForge)的一个错误,已经承认了七个月,目前还没有ETA。 Nitty-gritty details在将服务器响应传递到轴之前预处理服务器响应

如果我可以在传递给Axis之前拦截实际的响应,我将能够去除HTML内容,但我不知道该怎么做。任何指针(以及替代解决方案),将不胜感激。


更新:使用Axis 1.4

+0

这是与轴1? – skaffman 2010-01-08 14:32:05

+0

是的,这是与轴1. – 2010-01-08 14:35:24

回答

0

如果你可以添加到服务器端,一个ServletFilter可能是一个解决方案。

如果您只能在客户端进行更改,则可以创建一个接收SOAP数据的代理servlet,将其传播到服务器并剥离结果。

实际剥离可以使用XSLT来完成,尽管如果包装html是恒定的,那么这可能是矫枉过正的。

+0

我在客户端,但我不认为我理解你的答案。我所做的是在客户端调用Axis,然后(... axis magic ...)我得到实际响应。我没有使用任何servlet。 – 2010-01-08 15:30:34

+0

Axis执行servlet调用,如果您在本地配置调用代理servlet,则它可以调用远程端并剥离响应,以便您的Axis代码接收剥离的响应。 – rsp 2010-01-08 17:06:22

1

我会尝试看看我是否可以添加一个拦截器去除HTML。他们似乎使用SOAP压缩,看看: http://www.thomas-bayer.com/soap-compression-howto.htm 看看客户端配置部分,也许你可以做类似的事情。

+0

有趣,谢谢。我会研究提供一个自定义的'transport'并且看看它做了什么。 – 2010-01-12 21:23:13