1

我使用 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 不能为空或为空”异常。

  • 在 web.xml 文件中添加了一个新条目以将 AxisServlet 映射到 url 模式“/”,但它再次不起作用。

所以,我的问题是:有没有办法摆脱 servicePath 参数?

假设没有办法这样做,另一个想法是将请求从我尝试使用的端点 url“重定向”到axis2使用的那个(使用servicePath)。我不确定如何做到这一点,也许使用 servlet?应用服务器上的一些配置?

4

1 回答 1

2

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

<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/FooService/*</url-pattern>
</servlet-mapping>
于 2012-11-29T15:25:10.043 回答