在没有 servicePath 的情况下更改 Axis2 上的 WS 端点
我使用 Axis2 1.4 和 glassfish 2.1.1 开发了一个 WS,它可以使用端点 url 正确运行,
`http://server:port/appname/services/FooService`
但我需要让它通过端点工作,
`http://server:port/FooService`
因为 WS 客户端无法更改为使用不同的端点。
摆脱“appname”部分很容易,将应用程序名称设置为应用程序服务器下的 root(更改应用程序的 application.xml 配置文件)。这会导致像 http://server:port/services/FooService
这样的端点,它工作正常,但仍然有“服务”部分。
为了摆脱“服务”部分,我尝试:
更改了 axis2.xml 配置文件上的“servicePath”属性。如果我将此属性设置为空白、null、“”或“/”则不起作用。在前两种情况下,部署应用程序时会引发“servicePath 不能为 null 或为空”异常。
在 web.xml 文件中添加了一个新条目,以将 AxisServlet 映射到 url 模式“/”,但同样不起作用。
所以,我的问题是:有什么方法可以摆脱 servicePath 参数吗?
假设没有办法这样做,另一种想法是将请求从我尝试使用的端点 URL“重定向”到 axis2 使用的端点 URL(使用 servicePath)。我不知道如何做到这一点,也许使用 servlet?应用程序服务器上的一些配置?
I've developed an WS using Axis2 1.4 and glassfish 2.1.1, which is properly running using the endpoint url like
`http://server:port/appname/services/FooService`
but I need to get it working through an endpoint like
`http://server:port/FooService`
since the WS clients can't be changed to use a different endpoint.
Getting rid of the "appname" part was easy, setting the appname to root under the application server (changing the application.xml configuration file for the application). This leads to an endpoint like http://server:port/services/FooService
which works fine but still has the "services" part on it.
To get rid of the "services" part, i tried:
Changed the "servicePath" property on the axis2.xml configuration file. If I set this property to blank, null, "" or "/" does not work. On the first two cases a "servicePath can't be null or empty" exception is thrown while deploying the application.
Added a new entry on the web.xml file to map the AxisServlet to the url pattern "/", but again it does not work.
So, my question is: Is there any way to get rid of the servicePath parameter?
Supposing there is no way for doing so, another idea is to "redirect" requests from the endpoint url i'm trying to use to the one that axis2 uses (with the servicePath). I'm not sure how to do this, maybe with a servlet? some configuration on the application server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您以 ROOT 身份部署应用程序,只需将 servlet 映射放入 web.xml 中:
If you deployed an application as ROOT just put servlet mapping in web.xml :