我使用Axis2 1.4和glassfish 2.1.1开发了一个WS,它使用端点URL正确运行,如
`http://server:port/appname/services/FooService`
但是我需要让它通过像
这样的端点工作 `http://server:port/FooService`
因为无法将WS客户端更改为使用不同的端点。
轻松删除“appname”部分,将appname设置为应用程序服务器下的root(更改应用程序的application.xml配置文件)。这导致像http://server:port/services/FooService
这样的端点工作正常,但仍然有“服务”部分。
为了摆脱“服务”部分,我试过:
更改了axis2.xml配置文件中的“servicePath”属性。如果我将此属性设置为空白,则null,“”或“/”不起作用。在前两种情况下,在部署应用程序时抛出“servicePath不能为null或为空”异常。
在web.xml文件中添加了一个新条目,以将AxisServlet映射到url模式“/”,但同样不起作用。
所以,我的问题是:有没有办法摆脱servicePath参数?
假设没有办法这样做,另一个想法是从我尝试使用的端点url“重定向”请求到axis2使用的(使用servicePath)。我不知道怎么做,也许用servlet?应用服务器上的一些配置?
答案 0 :(得分:2)
如果您将应用程序部署为ROOT,只需将servlet映射放在web.xml中:
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/FooService/*</url-pattern>
</servlet-mapping>