我知道如何使用@WebService和@无状态注解来编写EJB并将其公开到WebService中。
而是因为我们尝试使用其他工具首先生成WSDL,然后再创建Java代码。我可以使用WebLogic的WSDLC从WSDL生成服务代码。但问题是WSDLC生成的代码不是EJB。做WSDL -> EJB有什么建议吗?
如果可能的话,我不喜欢使用AXIS。
发布于 2011-10-03 21:27:26
我在EJB和Web服务方面工作了很长一段时间,没有遇到任何这样的工具。从逻辑上讲这是有道理的,
EJB服务本身不是组件,而是某个业务组件(在本例中为)的外观。它们彼此解耦。
这就是我觉得不会有这样的工具直接从WSDL生成EJB的原因。但是,我仍然受到我的经验的限制。我很想知道这样的工具是否存在。
编辑:仅供参考,这里有WSDL EJB Extension。但是它需要现有的EJB来将其操作绑定到WSDL。(它不创建EJB代码)
发布于 2011-10-03 21:55:47
嗯,并不是说新的EJB3.1没有比旧版本好很多,但我仍然更喜欢使用Apache CXF来实现web服务:
http://cxf.apache.org/
它有一个很好的wsdl2java工具(也可以用作maven插件):
http://cxf.apache.org/docs/wsdl-to-java.html
它获取您的WSDL文件,验证它,然后为您的web服务的实现生成非常干净的Java模板代码:您有用于编组请求和响应的JAXB类,一个非常简单的(编码为接口的)web服务实现类,其中包含每个ws操作的方法(当然,您必须使用您的业务逻辑实现您自己的方法),还可以选择一个很好的Java客户端存根,另一个Java应用程序可以使用它来轻松地访问您的服务。即使没有客户端存根,你仍然可以得到一个干净标准的实现,它基本上就是Java类,不需要EJB容器来启动(或测试)你的web服务。
发布于 2011-10-06 12:33:36
支持从NetWeaver生成WebService。我只是试一试。http://help.sap.com/saphelp_nw72/helpdata/en/46/7f2fef88190ad3e10000000a11466f/content.htm
我还检查了由Apache CXF、SAP和WebLogic生成的代码。它们是相似的。如果您使用EJB3,您只需向Apache CXF或WebLogic生成的代码添加@Stateless注释,使其成为一个EJB。
但我认为直接向WebService公开业务EJB并不是一个好主意。应该有一个服务层。将EJB用作服务层的好处是,它可以使用注入轻松地访问其他EJB。
https://stackoverflow.com/questions/7634119
复制相似问题