Wsdl文件在新服务器上已更改



我们已经在liberty服务器中部署了我们的Web服务。早些时候是在IBM was上。在liberty中部署后,我们了解到Web服务是在CXF Web服务框架上运行的。在WAS中,它是Axis框架。另一个不同之处在于,wsdl url中发生了更改;所容纳之物旧的wsdl url是http://localhost:8080/Hello/HelloServices/Helloservices.wsdl它包含xsd模式定义。

在上面的自由服务器中,wsdl url不起作用,也找不到抛出文件。但如果我们试图调用http://localhost:8080/Hello/HelloServices?wsdl它起作用了。

有人能说出为什么旧的url在新服务器中不起作用吗。是由于服务器还是服务器中内置的cxf框架。

另一个团队正在使用wsdl url来使用此Web服务,使用此新url他们无法实现

如有任何想法或建议,我们将不胜感激。。

提前感谢

主要原因是不同WebSphere概要文件使用的JAX-WS实现发生了变化。不幸的是,CXF对WSDL url进行了硬编码,以便在多个位置附加?wsdl,因此这是不可能在配置中更改的。最简单的解决方案是添加一个Servlet Filter来检查http://localhost:8080/Hello/HelloServices/Helloservices.wsdl的传入请求url,然后将请求重定向到http://localhost:8080/Hello/HelloServices/Helloservices?wsdl

有一篇很好的SO文章展示了如何编写Servlet过滤器来重定向到这里:

如何在Java中使用servlet过滤器来更改传入的servlet请求url?

另一种选择是让客户端更新他们的代码或配置,以考虑对WSDL URL的更改。

最新更新