当前位置: 首页 > 知识库问答 >
问题:

无状态企业Bean中的Web服务客户端

金晨
2023-03-14

实现无状态EJB 3.1以调用Web服务的正确方法是什么?我的客户端作为Servlet工作,但是我想将调用移动到EEJ bean中。我必须在SOAP头信封中添加用户名和密码才能访问WS,这很正常。

servlet正在使用的服务如下所示;

@WebServiceClient(name = "MessageService", targetNamespace = "http://...", wsdlLocation = "...wsdl")
public class MessageService
    extends Service

我可以在无状态EJB中包装MessageService,还是bean本身应该在不包装MessageService的情况下使用@webservicef(如教程中所示)?

辅导的

共有1个答案

储仲渊
2023-03-14

如果客户端和提供者位于应用服务器上的同一个EAR或WAR中,则可以像顺序EJB一样调用。

@WebService
@Stateless
public class CalculatorBean implements Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

CalculatorBean是线程安全的。add方法中出现的所有业务逻辑都是容器管理事务的一部分,不参与任何全局事务。

或者,客户机代码可以在JNDI命名空间中查找。

运行时可以将服务对象或端口对象注入到用javax注释的成员变量中。xml。ws。WebServiceRef

@WebServiceRef(CalculatorService.class)
private Calculator port;

CalculatorService类用javax注释。xml。ws。WebServiceClient注释(服务的客户端),它具有wsdlLocation属性。

如果您想将WebService包装到EJB中,请参见下面的答案。有关这方面的讨论,请参阅EJB和Web服务:两全其美。

 类似资料:
  • 问题内容: 我正在阅读Java EE 6教程,试图理解无状态会话bean和有状态会话bean之间的区别。如果无状态会话bean在方法调用之间没有保持其状态,为什么我的程序按原样运行? 客户端 我原本希望getNumber每次都返回0,但它返回1,并且在浏览器中重新加载servlet会使它更多。问题在于我对无状态会话Bean如何工作的理解,而与库或应用程序服务器无关。有人可以给我一个无状态会话bea

  • Web服务客户端 web服务客户端可以通过两种方式访问Java EE应用程序。首先,客户端可以访问用JAX-WS创建的web服务。(有关JAX-WS的更多信息,请参阅第19章,使用JAX-WS构建Web服务。)其次,web服务客户端可以调用无状态会话bean的业务方法。web服务客户端无法访问消息bean。 只要使用正确的协议(SOAP、HTTP、WSDL),任何web服务客户机都可以访问无状态会

  • 问题内容: 我有stfw,但是找不到在Java中创建Web服务客户端的简单/独立方法。 有人在此链接/示例吗? 问题答案: 使用Axis2怎么样? 只需按照快速入门指南进行操作,就可以轻松应对。 这是另一个更具描述性的指南

  • 问题内容: 我正在制作客户端服务器MMO风格的游戏。到目前为止,我已经建立了框架,以便服务器和客户端相互交互以提供状态更新。服务器维护游戏状态并定期计算下一个状态,然后每隔一段时间(每n毫秒)将其发送给所有客户端。用户可以在客户端查看此新状态并做出反应。然后,将这些操作发送回服务器进行处理,并发送给下一次更新。 明显的问题是这些更新在服务器和客户端之间传播需要花费时间。如果客户端采取行动攻击敌人,

  • 我不理解无状态会话bean。文档说,instances变量可能包含特定于客户机的状态,然后说,当方法完成时,不应该保留状态。

  • 我是java和web服务以及的新手。我最近使用一些教程创建了一个web服务。当我第一次学习eclipse教程时,让我创建一个客户机。但是当我尝试创建一个新项目和一个新的web服务客户机时,它会给出。具体如下所示: im使用Axis2-1.6.1,它说java遵从性级别是6,我搜索了一下,但是找不到解决这个问题的相关方案。感谢任何帮助。