【问题标题】:Why @Stateless @WebService is stateful?为什么@Stateless @WebService 是有状态的?
【发布时间】:2014-03-12 05:12:03
【问题描述】:

使用@Stateless 等定义的 Web 服务

 import javax.ejb.Stateless;
 import javax.jws.WebService;

 @Stateless
 @WebService(serviceName = "TestService")
 public class TestService {
     int counter = 0;
     public int getCounter() {
         return counter++;
     }
 }

为什么每次请求都会增加“计数器”而不总是返回 0?

【问题讨论】:

    标签: web-services jakarta-ee stateless stateful


    【解决方案1】:

    因为@Stateless 你告诉容器你没有持有任何状态,但你确实持有状态。

    使用@Stateless,容器只创建一个bean实例,因为不需要创建更多。

    您可能想进一步了解 JEE 以及注释的含义:http://theopentutorials.com/tutorials/java-ee/ejb3/session-beans/slsb/introduction-11/

    【讨论】:

    • 给定的链接有助于更好地理解它。谢谢你。尤其是比我用Thread.sleep 修改getCounter 方法更容易获得并发访问。关于“使用@Stateless,容器只创建一个bean实例,因为不需要创建更多”——在这种并发访问的情况下创建不同的实例。
    猜你喜欢
    • 2016-10-23
    • 2021-03-20
    • 1970-01-01
    • 2016-08-15
    • 2020-07-28
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多