2008-09-19 46 views
4

我試圖將XML模式添加到現有的EJB項目。 JAXB用於將XML-Schema綁定到Java類。正如我們打算在EJB處於會話中時使用搜索引擎抓取DTO一樣。使用JAXB接口連接EJB-XML

我找不到任何直接的方法來將實體類文件映射到XML-Schema。

我們迄今爲止實現的唯一方法是創建Web服務,生成生成xml架構(XSD)的WSDL,然後通過JAXB(xjc命令)解析XSD文件以創建java類文件。現在使用mapping-binding.xml文件,我們可以映射XML和Java類文件。

但現在又一個問題是如何映射到實體類。

這就是我們要達到:XML模式

  • XML數據對象,(這是已經存在於JAXB規範)。
  • 實體Bean然後擴展或具有此JAXB對象的接口。
  • 所有的持久性功能是由實體Bean管理...
  • 實體bean隨後將包含XML編組和解組特徵JAXB發現..
  • 值對象可以從二進制或XML格式檢索實體Bean對象。
  • JSP可以輕鬆地從Value對象中提取XML Schema和XML Data,並對其執行諸如XSL轉換等操作。

我的觀點是Entity Beans沒有標準的方法來連接到JAXB對象。

Castor可能是解決方案,但我們必須再次實現Web服務或使用castor JDO。

我發現XStream非常有用,因爲它使用了一個轉換器類,您可以在其中調用實體bean類對象並生成一個xml文件。但我不喜歡使用另一個類,但將函數合併到現有的bean類中。

你能在這方面幫助我嗎?


我會告訴你我究竟在努力達到什麼。我正在創建一個搜索引擎,這個搜索引擎會在EJB會話期間引發,並使用抓取工具通過DTO,並以XML格式獲取快照。搜索將根據不同的標準。

Lucene是的搜索引擎工具之一,但後來它使用自己的屬性和文件(會更像單機)

我已經有DTO的將使用該web服務PHP & Java應用程序之間的通信(EJB -層)。我想重用jaxb中的那些DTO作爲抓取工具,從XML中獲取表格的輸出,這是JAXB通過xml-schema使用自己生成的類時無法完成的。就像你說的,我還沒有找到一種方法來指示JAXB去bean類。

+0

迂腐:*接口請校對。 – GEOCHET 2008-09-19 13:56:58

回答

2

將您的數據模型(實體bean)與您的XML接口緊密耦合可能不是世界上最好的想法;它會阻止你在不改變另一個的情況下改變它。

我不是100%確定我明白你在做什麼,但我認爲有一種方法可以指示JAXB擴展類而不是創建新類。你可以像平常一樣創建你的實體Bean,並讓你的JAXB生成的bean擴展那些額外的信息。

我可以說,讓實體bean實例從某處其他比你的持久層(如XML反序列化它們)將是一個巨大的問題你。

另請注意,使用XML在Java應用程序(例如JSP/Servlet和EJB層之間)之間進行通信是一個壞主意;編組和冗長的XML購買你很少;通過RMI序列化對象(這是EJB爲你做的)將更容易實現,測試和維護。

+0

感謝您的幫助和suggesetion戴夫.. 請評價...作爲ive添加更多信息 – 2008-09-19 20:26:21