如何让Tomcat WebApp自动部署子服务?

发布于 2024-07-29 01:44:36 字数 447 浏览 11 评论 0原文

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

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

我怎样才能拥有一个单独的上下文,让所有服务都存在并自动部署。 就像 axis2.war 的 services 目录是如何做的一样?

例如:我部署了一个分解的 MyBridge.war,其中包含一个名为 services 的目录。 我在 MyBridge.war/WEB-INF/services 中部署 HelloWorldService.rar,然后它就被部署了。

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

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

I've written a service framework using Hessian and want to keep URL's common but the flexability of auto-deploy.

If i deploy a Service.war I can access it fine using /Service however, I want a general spot for all services.

How could I have a seperate context where all services live and get auto-deployed. Exactly like how axis2.war does it with its services directory?

For example: I deploy an exploded MyBridge.war which contains a directory within it called services. I deploy HelloWorldService.rar within the MyBridge.war/WEB-INF/services and it gets deployed.

I can then accesss MyBridge/HelloWorldService ?

can this be done? I'm trying to do auto-deployment without using spring and hessian and just hessian.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一张白纸 2024-08-05 01:44:36

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)。 这样您将无法拥有管理页面。

Axis2 is doing it by defining a simple servlet mapping:

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

This is all that is needed. You could also use a filter. Your servlet/filter will receive all requests to the defined path and will use the resources under WEB-INF/services to serve them. I believe that you would need a special class loader in order to load the classes/jar files stored there.

If you want to have MyBridge/HelloWorldService and not MyBridge/services/HelloWorldService, then you need to pass all requests to the services servlet/filter (/* url-pattern). This way you won't be able to have an administration page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文