创建Web服务以在内部应用程序中使用并将其公开给其他人

时间:2009-10-29 23:52:37

标签: java web-services spring tomcat

对于我的Web应用程序,我正在考虑使用Spring框架。最初,我在考虑使用创建用户或登录等不同的操作,但现在我必须向其他应用程序公开一些功能。我应该创建一个我从我的应用程序调用的Web服务,也可以创建一个来自Spring的操作,然后让其他人调用Web服务?看起来我应该尽量减少调用某些东西的不同方法,但是调用与我的主应用程序在同一个应用程序服务器上运行的Web服务是否有意义?从绩效角度来看,这会是一个坏主意吗?

更新

我担心Tomcat无法同时在端口80上提供静态或动态页面(因此用户可以访问www.example.com/welcome.jsp而不是www.example.com:8080/welcome .jsp),以及一个Web服务,但我想它并不重要,因为它们只是作为Tomcat的请求提供的。我猜这意味着我必须将Tomcat更改为在端口80上运行,其他应用程序将通过此端口访问Web服务。或者我可以让Tomcat在端口8080上运行,并将Apache放在端口80上的Tomcat上,Apache将向Tomcat提供请求。这是对的吗?

1 个答案:

答案 0 :(得分:1)

我将公共业务逻辑放在“业务服务”中并且:

  1. 通过您的网络应用中的操作调用它
  2. 将其公开为其他应用程序的Web服务
  3. 对我来说,这种方法没有什么不好,用Spring实现它非常容易和干净。实际上,我觉得丑陋只是将此业务服务公开为Web服务并从Web应用程序中调用它(我很确定在Web应用程序端实现这一点会更复杂)。您有不同的“使用上下文”,只需为它们公开适当的接口。

    (编辑:我正在回答以下评论发布的OP的问题)

    您可以在同一个WAR中部署Web应用程序和Web服务(但这只是一个部署选择,您可以将业务逻辑打包在JAR中并在多个WAR中使用它)。关于港口,我不确定你理解你的问题。传统上,您将在应用程序服务器前使用Web服务器(例如apache)。如果不这样做,您可以随时选择在端口80上运行app server。实际上,在这两种情况下,您都可以自由使用任何端口。使用端口80很方便。

    是的,您的更新是正确的。