5

我刚开始学习 Java Web 服务 (JAX-WS) 并且有一个问题。参考文档总是谈论 Web 服务容器。我的问题是:什么是 Web 服务容器以及我们为什么需要它。我在“java web services up and running”一书中看到了一个简单的 JAX-WS 示例,其中使用以下方式发布 web 服务:

Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl());

此示例不需要我在 Web 服务器/应用服务器或任何容器中托管 Web 服务。

而且我还能够访问此网络服务。

那么什么是容器,为什么我们需要它来提供 Web 服务呢?

4

3 回答 3

5

基本上,您只需要可以运行 Java servlet 的东西。典型的例子有 Tomcat、Glassfish、JBoss、Jetty 等等。

在这些 Tomcat 中重量最轻,因为它“仅”是一个 servlet 容器(JBoss 和 Glassfish 是 J2EE 应用服务器),并且是 servlet 规范的参考实现。您会发现很多 IDE 集成和使用它的教程。

于 2009-08-13T15:53:49.890 回答
1

各个供应商(Websphere、Weblogic、JBoss)的 Web 服务规范实现是通过一个 servlet 实现的,您需要一个 serverlet 容器来支持这个 servlet。此 servlet 专门设计用于处理基于 SOAP 的流量(带有 SOAP 标头和正文的 HTTP 流量),而不是您从浏览器发送的基于 HTTP 的普通 POST/GET。

于 2009-08-17T19:29:07.323 回答
0

您创建的 Web 服务在容器中运行,在本例中是服务器。服务器可以运行多个应用程序,每个应用程序都有自己的容器。容器是必要的,因为它为执行源中包含的 Java 提供了一个独立的环境。

容器提供安全性,因此如果一个应用程序因问题而崩溃,其他应用程序不会崩溃。根据实现,每个容器可以在自己的 VM 中运行,也可以跨多个 VM 运行。基本上,它们是在与其他代码不同的环境中运行代码。

是一些关于容器概念的旧(ish)文档。基本上它们可以在不同的安全容器中运行,就像在 Java 中同时运行多个应用程序一样,这些应用程序通过单个应用程序(Web 服务器)进行控制。

于 2009-08-17T19:34:16.753 回答