【问题标题】:How to use EJB3 in Webservice如何在 Web 服务中使用 EJB3
【发布时间】:2011-10-13 23:46:46
【问题描述】:

我在eclipse id 中创建了一个EJB 项目,该项目是从数据库中检索数据并将数据写入数据库。我使用 JPA 完成了数据库处理部分。现在我想将其转换为 Web 服务。我用谷歌搜索了两天,但每个指南都让我遇到了很多问题。 有些教程说只是在Stateless bean类中添加@webservice,@webmethod注解,但是即使没有部署,eclipse也会报错。请有人帮助我继续前进。

谢谢。 伊苏鲁

【问题讨论】:

  • 但是,如果您需要将 EJB 变成 WS,为什么还要使用它呢?因为 EJB 本身就是一个分布式组件。与其制作一个简单的 DAO 类来处理 DB 操作,不如制作一个服务来处理操作并将该服务发布为 Web 服务。 Eclipse 提供插件来从任何 POJO 类创建 WS。当您部署代码时,它也会生成 WSDL。
  • @Paarth 从无状态会话 Bean 公开 WS 接口是非常合法的。我同意这不是唯一的方法,但 Isuru 正在尝试的应该是可能的。

标签: java eclipse web-services jakarta-ee ejb-3.0


【解决方案1】:

尝试下载 Eclipse for Java EE 并仅使用无状态会话 bean 创建新项目。看看注释是否有效,我猜这是你在 Eclipse 中的“java 构建路径”设置的问题。

【讨论】:

    【解决方案2】:

    对于我来说 Eclipse 不会抱怨这个:

    package ord.djna.ejb;
    import javax.ejb.Local;
    import javax.jws.WebService;
    
    @Local
    @WebService
    public interface TheFacadeLocal {
    
        int countItems();
    
    }
    

    请向我们展示您的代码。

    【讨论】:

      【解决方案3】:

      添加注解确实够了:

      @Stateless
      @WebServicepublic 
      class MySessionBean {  
        public void doSomething() { … }
      }
      

      默认情况下,所有公共方法都暴露给 Web 服务。如果你想限制它,你必须在所有应该暴露的方法中添加@Webmethod。

      除此之外,您应该告诉我们您遇到了哪些错误。

      【讨论】:

        猜你喜欢
        • 2011-03-28
        • 2012-05-28
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2013-10-23
        • 1970-01-01
        相关资源
        最近更新 更多