Java Web服务容器

Java Web服务容器,java,web-services,jakarta-ee,jax-ws,containers,Java,Web Services,Jakarta Ee,Jax Ws,Containers,我刚刚开始学习JavaWeb服务(JAX-WS),有一个问题。参考文档总是谈论Web服务容器。我的问题是:什么是Web服务容器,为什么我们需要它。 我在《java web服务启动和运行》一书中看到了JAX-WS的一个简单示例,其中web服务是使用以下方式发布的: Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl()); 此示例不要求我在web服务器/应用程序服务器或任何容器中托管web服务 我还可以访问这个web服务

我刚刚开始学习JavaWeb服务(JAX-WS),有一个问题。参考文档总是谈论Web服务容器。我的问题是:什么是Web服务容器,为什么我们需要它。 我在《java web服务启动和运行》一书中看到了JAX-WS的一个简单示例,其中web服务是使用以下方式发布的:

Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl());
此示例不要求我在web服务器/应用程序服务器或任何容器中托管web服务

我还可以访问这个web服务


那么什么是容器,为什么web服务需要它呢?

基本上,您只需要能够运行Java servlet的东西。典型的例子有Tomcat、Glassfish、JBoss、Jetty和其他许多


其中Tomcat最轻,因为它“只是”一个servlet容器(JBoss和Glassfish是J2EE应用程序服务器),是servlet规范的参考实现。您会发现许多IDE集成和教程也使用它。

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

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

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


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

那么,您是说,当我们发布如上所述的web服务时,jvm会创建一个容器并在该容器中运行web服务?或者JVM在web服务文档中被称为“容器”。你能解释一下吗?我更新了我的答案,加入了一些关于几年前来自Sun的容器的信息。概念没有改变。