Java 如何从WSDL生成EJB

Java 如何从WSDL生成EJB,java,web-services,wsdl,ejb,weblogic,Java,Web Services,Wsdl,Ejb,Weblogic,我知道如何使用@WebService和@Stateless注释来编写EJB并将其公开到WebService中 但因为我们尝试使用其他工具先生成WSDL,然后再创建Java代码。我可以使用WebLogic的WSDLC从WSDL生成服务代码。但问题是WSDLC生成的代码不是EJB。有什么建议可以使用WSDL->EJB吗 如果可能的话,我宁愿不使用AXIS。我在EJB和Web服务中工作了很长一段时间,没有遇到任何这样的工具。从逻辑上讲,这是有道理的 Web服务本身不是组件,而是某些业务组件(本例中为E

我知道如何使用@WebService和@Stateless注释来编写EJB并将其公开到WebService中

但因为我们尝试使用其他工具先生成WSDL,然后再创建Java代码。我可以使用WebLogic的WSDLC从WSDL生成服务代码。但问题是WSDLC生成的代码不是EJB。有什么建议可以使用WSDL->EJB吗


如果可能的话,我宁愿不使用AXIS。

我在EJB和Web服务中工作了很长一段时间,没有遇到任何这样的工具。从逻辑上讲,这是有道理的

  • Web服务本身不是组件,而是某些业务组件(本例中为EJB)的门面。它们彼此分离

  • WSDL基本代码生成器将生成这些外观或带注释的POJO

  • POJO/Facade是否使用EJB或任何其他服务进一步委托,完全取决于实现

    这就是为什么我觉得不会有这样的工具直接从WSDL生成EJB。但我再一次被我的经验所限制。我想知道这样的工具是否存在


  • 编辑:仅供参考,有。但它需要现有的EJB将其操作绑定到WSDL。(它不创建EJB代码)

    好吧,这并不是说新的EJB3.1没有比旧版本好多少,但我仍然倾向于使用ApacheCXF实现web服务:

    它有一个很好的wsdl2java工具(也可以用作maven插件):


    它获取您的WSDL文件,验证它,然后为您的web服务的实现生成非常干净的Java模板代码:您有用于编组请求和响应的JAXB类,这是一个非常简单(编码为接口)的web服务实现类,具有用于每个ws操作的方法(当然,您必须使用您的业务逻辑实现哪些方法),以及另一个Java应用程序可以用来轻松访问您的服务的可选Java客户端存根。即使没有客户端存根,您仍然可以得到一个干净、标准的实现,基本上就是Java类,无需启动(或测试)EJB容器您的web服务。

    SAP NetWeaver Developer Studio支持从WSDL生成EJB web服务。我只是尝试一下。

    我还检查了由Apache CXF、WebLogic wsdlc和SAP生成的代码。它们是相似的。如果您使用EJB3,您可以在由Apache CXF或WebLogic生成的代码中添加@Stateless注释,使其成为EJB


    但是我认为直接向Web服务公开业务EJB不是一个好主意。应该有一个服务层。将EJB用作服务层的好处是,它可以使用注入轻松访问其他EJB。

    我读了一些文章,就像你说的,向Web服务公开EJB不是一个好的设计。我将尝试学习更多,谢谢。顺便说一句,WSIF自2003年1月以来没有新版本,也许我们不应该使用它。CXF生成的代码与WebLogic的wsdlc类似,但它有更多的弹性,最重要的是我们不需要安装整个WebLogic,谢谢。它还支持JAXB(WebLogic也使用JAXB,但AXIS2似乎只支持ADB和XmlBeans)