在没有servicePath的情况下更改Axis2上的WS端点

时间:2010-10-06 10:35:09

标签: redirect axis2 endpoint

我使用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?应用服务器上的一些配置?

1 个答案:

答案 0 :(得分:2)

如果您将应用程序部署为ROOT,只需将servlet映射放在web.xml中:

<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/FooService/*</url-pattern>
</servlet-mapping>