Multithreading 通过jax-ws实现的web服务是多线程的吗
我已经使用spring、cxf和jax ws实现编写了一个web服务,我有一个关于ws的基本问题。Web服务端点如何处理并发请求?它是为每一个请求创建一个新线程,类似于servlet还是单线程模型?由于我们期望每个web服务都有巨大的容量,因此将WSDL滑动到多个WSDL以获得不同的端点会有什么不同吗?从客户机和服务的角度来看,没有“多线程”这样的事情。您的客户端调用一个请求,并获得一个响应(可能是错误响应)。您的服务器收到一个请求,并为该请求提供服务。句号 如何调度请求是一个实现细节Multithreading 通过jax-ws实现的web服务是多线程的吗,multithreading,web-services,jax-ws,cxf,Multithreading,Web Services,Jax Ws,Cxf,我已经使用spring、cxf和jax ws实现编写了一个web服务,我有一个关于ws的基本问题。Web服务端点如何处理并发请求?它是为每一个请求创建一个新线程,类似于servlet还是单线程模型?由于我们期望每个web服务都有巨大的容量,因此将WSDL滑动到多个WSDL以获得不同的端点会有什么不同吗?从客户机和服务的角度来看,没有“多线程”这样的事情。您的客户端调用一个请求,并获得一个响应(可能是错误响应)。您的服务器收到一个请求,并为该请求提供服务。句号 如何调度请求是一个实现细节 WSDL
WSDL只是一个“契约”。服务“发布”它支持的操作以及它使用WSDL的数据类型;客户机相应地打包和解包其请求和响应SOAP消息。但是WSDL在任何给定的web服务调用中都不起直接作用。当然,web服务由web服务器(例如Glassfish)托管,当接收多个同时请求时,该服务器是多线程的。虽然很晚,但可能会有所帮助 publish(Url,ServiceImplObj)在给定的Url上发布Web服务。分配给请求处理的线程数量实际上是由jvm控制的,因为这是一个由jvm自己处理的轻量级部署 为了更好地说明,您可以在服务端打印当前线程名称,您可以看到服务线程是从jvm管理的线程池分配的
[pool-1-thread-1]: Response[57]:
[pool-1-thread-5]: Response[58]:
[pool-1-thread-4]: Response[59]:
[pool-1-thread-3]: Response[60]:
[pool-1-thread-6]: Response[61]:
[pool-1-thread-6]: Response[62]:
这是我在JDK1.6.035上尝试的
xjc-版本
xjc版本“JDK 6中的JAXB 2.1.10”
JavaTM XML绑定体系结构(JAXB)参考实现(构建JAXB
JDK 6中的2.1.10)
谢谢你的回复。您提到了服务器接收器请求并返回响应。端点在服务响应方面扮演什么角色。它如何处理并发请求。web服务端点的情况与JSP servlet的情况完全相同。。。或任何其他web请求/响应。从服务的角度来看,您不知道或不关心侦听器是否将您的请求发送到新线程、新进程或全新的JVM。或者如果它只是阻塞。从您的角度来看,没有“多线程”。然而,从服务器的角度来看:是的,它可能会创建一个新线程。具体细节因服务器而异(例如,Tomcat vs JBoss vs WebSphere vs WebLogic,它们可能都以不同的方式实现其dispatchers)。@paulsm4如果您能共享一个参考链接以支持您在此处共享的信息,我将不胜感激。我一直在寻找显示web服务生命周期的东西(比如在OracleJEE5教程中可以很容易地找到无状态会话bean生命周期),但找不到任何。。。