0

我在这里阅读此输入链接描述。具体来说,这部分让我感到困惑。

Web 服务客户端

Web 服务客户端可以通过两种方式访问​​ Java EE 应用程序。首先,客户端可以访问使用 JAX-WS 创建的 Web 服务。(有关 JAX-WS 的更多信息,请参阅第 19 章,使用 JAX-WS 构建 Web 服务。)其次,Web 服务客户端可以调用无状态会话 bean 的业务方法。Web 服务客户端无法访问消息 bean。

只要它使用正确的协议(SOAP、HTTP、WSDL),任何 Web 服务客户端都可以访问无状态会话 bean,无论客户端是否用 Java 编程语言编写。客户端甚至不“知道”什么技术实现了服务:无状态会话 bean、JAX-WS 或其他一些技术。此外,企业 bean 和 Web 组件可以是 Web 服务的客户端。这种灵活性使您能够将 Java EE 应用程序与 Web 服务集成。

Web 服务客户端通过 bean 的 Web 服务端点实现类访问无状态会话 bean。默认情况下,Web 服务客户端可以访问 bean 类中的所有公共方法。@WebMethod 注解可用于自定义 Web 服务方法的行为。如果使用@WebMethod 注解来装饰bean 类的方法,那么只有那些用@WebMethod 装饰的方法才会暴露给Web 服务客户端。

这就是我从上面的文章上下文中得到的:用斜体突出显示的文本。下面的要点是按照上面文本中突出显示的句子的顺序。

  1. “首先,客户端可以访问……” 意思是:访问使用 JAX-WS 创建的 Web 服务的任何客户端。(当然,任何客户端都可以访问使用任何工具/技术创建的任何 Web 服务。)。
  2. “第二个,一个 web 服务……” 意思是:JAX-WS Web Service 可以访问无状态的 Session bean。
  3. “任何Web服务客户端都可以访问”如何?.NET Web 服务客户端能否访问无状态会话 Bean?还是我理解错误?
  4. “Web 服务客户端访问无状态会话 bean ...”我没有得到这个。这是否意味着 Web 服务客户端访问使用无状态会话 Bean 创建的另一个 Web 服务?
4

1 回答 1

0

为了您的观点:

  1. 实现类不是 EJB。

    @WebService public class MyService {
        @EJB MyBean ejb;
        @WebMethod
        public void doSomething() { ... }
    }
    
  2. 实现类也是一个 EJB。

    @Stateless @WebService public class MyServiceBean {
        @WebMethod
        public void doSomething() { ... }
    }
    
  3. .NET 客户端可以通过以下方式访问 EJB:

    @Stateless @WebService public class MyServiceBean {
        @WebMethod
        public void doSomething() { ... }
    }
    
  4. 2的解释。端点实现类是,例如,MyServiceBean

于 2013-05-29T23:53:10.823 回答