0

我已经使用 Hessian 编写了一个服务框架,并希望保持 URL 的通用性但自动部署的灵活性。

如果我部署 Service.war,我可以使用 /Service 很好地访问它,但是,我想要所有服务的通用位置。

我怎么会有一个单独的上下文,所有服务都存在并自动部署。就像axis2.war如何使用它的服务目录一样?

例如:我部署了一个展开的 MyBridge.war,其中包含一个名为 services 的目录。我在 MyBridge.war/WEB-INF/services 中部署 HelloWorldService.rar 并部署它。

然后我可以访问 MyBridge/HelloWorldService 吗?

可以这样做吗?我正在尝试在不使用 spring 和 hessian 并且只使用 hessian 的情况下进行自动部署。

4

1 回答 1

0

Axis2 通过定义一个简单的 servlet 映射来做到这一点:

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

这就是所有需要的。您也可以使用过滤器。您的 servlet/filter 将接收到已定义路径的所有请求,并将使用 WEB-INF/services 下的资源为它们提供服务。我相信您需要一个特殊的类加载器才能加载存储在那里的类/jar 文件。

如果您想要 MyBridge/HelloWorldService 而不是 MyBridge/services/HelloWorldService,那么您需要将所有请求传递给服务 servlet/filter (/* url-pattern)。这样您将无法拥有管理页面。

于 2009-07-23T07:46:34.060 回答