2009-10-29 40 views
2

对于我的Web应用程序,我正在考虑使用Spring框架。最初,我正在考虑创建用户或登录等不同的操作,但现在我必须向其他应用程序公开某些功能。我应该创建一个我的应用程序调用的Web服务吗?其他人也可以这样做,或者从Spring创建一个动作,然后让其他人调用Web服务?看起来我应该尽量减少调用某些东西的不同方式,但是调用与我的主应用程序在同一个应用程序服务器上运行的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

我把常见的商业逻辑在“企业服务”和:

  1. 调用它的动作在你的web应用程序
  2. 公开为其他应用程序的Web服务

对我来说,这种方法并没有什么不好,而且用Spring来实现它非常简单和干净。实际上,我会发现丑陋地将这个商业服务作为Web服务公开,并从Web应用程序中调用它(并且我非常肯定这会在Web应用程序端实现起来更复杂)。你有不同的“使用上下文”,只是为他们展示适当的接口。

(编辑:我回答张贴下面的评论的OP的问题)

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

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

+0

我可以将Web应用程序和Web服务部署在同一个war文件中吗?这似乎是我必须作为Web应用程序需要访问业务逻辑。这是否意味着Web服务必须在端口80上提供请求,以便Web应用程序可以获得常规页面,并且Web服务也可以使用? – 2009-10-30 00:45:40

+0

好的,所以我可以将它们部署在同一个WAR中,并使用Web服务服务器:8080/webservice ...以及其他网络应用程序 /welcome.jsp?我认为战争将在同一个港口进行。这听起来好像我应该在tomcat前面有Apache,所以Web应用程序(普通jsp页面)或Web服务(SOAP请求)的请求将通过那里? – 2009-10-30 01:27:47

+0

我想你误解了我。 Tomcat将监听所有Tomcat服务应用程序的**相同**,所有Web应用程序,所有WAR的端口。然后在Tomcat前面使用Apache确实是一种很好的做法,特别是如果你有很多静态内容需要服务(Apache比Tomcat更好),但是你可能会选择不使用它(我之前提到它是因为你在谈论端口80)。其实,我没有得到港口的问题。 – 2009-10-30 02:11:35

相关问题