我正在阅读有关使用jax-ws构建soap服务的一些内容,作为java 6的一部分。我读到可以在SEI或服务端点接口中定义客户端可以调用的操作。这些操作可以由SIB实现,即“服务实现Bean ”。困扰我的部分是,根据this book的第4页,这个SIB“可以是POJO或无状态会话EJB ”。同样的定义适用于wikipedia。但是,我读到POJO(根据维基百科)是“一个普通的Java对象,而不是一个特殊的对象,它不遵循任何主要的Java对象模型,约定或框架,如EJB ”。因此,按照我的问题,我怎么知道我的SIB是POJO?另外,通过POJO或无状态会话EJB实现我的Web服务操作有什么区别?
答案 0 :(得分:1)
EJB 3.0引入了注释,允许任何POJO成为无状态会话bean。因此,句子“[a SIB]可以是POJO或无状态会话EJB”适用于EJB 3.0之前的无状态会话bean(例如EJB 2.1)。您现在可以将您的SIB编写为POJO - 即,不扩展任何其他类或实现您自己未编写的任何特殊接口。但是,如果要使用EJB,仍然需要EJB容器,例如WebLogic Server,IBM WAS或jBoss。
答案 1 :(得分:0)
在我看来,ejb对ejb的POJO分布能力的最大优势是存在很多像CMP这样的ejbs。
另一部分你在java中编写的类是一个POJO,换句话说,如果你的实现是一个java类,那么它就是一个POJO。
POJO术语的出现表明不需要特殊的类类型,因为Java EE中有很多特殊的类,所以需要java EE世界。
有关ejb相对于POJO的优势之一,您可以阅读本文档:http://lass.cs.umass.edu/~shenoy/courses/spring11/lectures/Lec24.pdf