我知道如何使用@WebService和@Stateless註釋來編寫EJB並將其公開到WebService中。如何從WSDL生成EJB
但是因爲我們嘗試使用其他工具先生成WSDL,然後創建Java代碼。我可以使用WebLogic的WSDLC從WSDL生成服務代碼。但問題是由WSDLC生成的代碼不是EJB。有沒有建議做WSDL - > EJB?
如果可能的話,我不喜歡使用AXIS。
我知道如何使用@WebService和@Stateless註釋來編寫EJB並將其公開到WebService中。如何從WSDL生成EJB
但是因爲我們嘗試使用其他工具先生成WSDL,然後創建Java代碼。我可以使用WebLogic的WSDLC從WSDL生成服務代碼。但問題是由WSDLC生成的代碼不是EJB。有沒有建議做WSDL - > EJB?
如果可能的話,我不喜歡使用AXIS。
我在EJB和Web服務工作了很長一段時間,沒有遇到任何這樣的工具。從邏輯上講它是有道理的,
POJO/Facade是否使用EJB或任何其他服務進一步委託,完全取決於實現。
這是我覺得不會是這樣的工具,直接從WSDL生成EJB。但我的經驗再次受到限制。我很想知道這種工具是否存在。
編輯:僅供參考,有WSDL EJB Extension。但它需要現有的EJB將其操作綁定到WSDL。 (它不會創建EJB代碼)
嘛,不就是新的EJB 3.1是不是有很多比舊版本更好,但我仍然preffer使用Apache CXF的Web服務實現:
它有一個很好的WSDL2Java工具(這也可以作爲Maven插件):
http://cxf.apache.org/docs/wsdl-to-java.html
這需要您的WSDL文件,驗證它,然後產生非常乾淨的Java模板代碼用於實現您的Web服務:您有用於編組請求和響應的JAXB類,一個非常簡單的(編碼到接口的)web服務實現類,其中包含每個ws操作的方法(您必須使用業務邏輯實現自己的方法) ,以及另一個Java應用程序可以輕鬆訪問您的服務的可選Java客戶端存根。即使沒有客戶端存根,您仍然可以獲得一個很好的乾淨和標準的實現,它基本上只是Java類,不需要啓動(或測試)您的Web服務所需的EJB容器。
由CXF生成的代碼與WebLogic的WSDL類似,但它具有更大的彈性,最重要的是我們不需要安裝整個WebLogic,謝謝。它也支持JAXB(WebLogic也使用JAXB,但AXIS2似乎只支持ADB和XmlBeans) – Dennys
SAP NetWeaver Developer Studio支持從WSDL生成EJB WebService。我只是試試。 http://help.sap.com/saphelp_nw72/helpdata/en/46/7f2fef88190ad3e10000000a11466f/content.htm
而且我也查被Apache CXF中,WebLogic WSDLC和SAP生成的代碼。他們是相似的。如果您使用EJB 3,則可以將@Stateless註釋添加到由Apache CXF或WebLogic生成的代碼中,以使其成爲EJB。
但我認爲將業務EJB直接公開給WebService並不是一個好主意。應該有一個服務層。將EJB用作服務層的好處是可以使用注入來輕鬆訪問其他EJB。
我讀過一些文章,就像你說的,將EJB公開給WebService並不是一個好設計。我會盡力學習更多,謝謝。順便說一句,自2003年1月以來WSIF沒有新的版本,也許我們不應該使用它。 – Dennys