2010-12-02 76 views
16

我有REST(Jersey)webservice,它使用了一些數據對象,這些數據對象是編組到/從XML編組的。數據對象位於Web服務戰爭所依賴的單獨項目/ jar中。在哪裏包含jaxb.properties文件?

我使用MOXy作爲我的JAXB實現,因爲我正在部署到Glassfish,並已包含在內。我知道我需要一個jaxb.properties文件到JAXB實現設置莫西與此項:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

的問題是,如果jaxb.properties文件被包含在數據對象的jar或web服務戰或都?

回答

18

如果你不想或者不能使用jaxb.properties(你有很多的包,該模型是在外部JAR ,只希望Java和沒有配置文件...),您可以直接指定JaxbContextFactory:

不要使用未創建上下文:

JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{Person.class, ObjectFactory.class}, properties); 

而是指定廠家使用:

JAXBContext jaxbContext = JAXBContextFactory.createContext(new Class[]{Person.class, ObjectFactory.class}, properties); 

工廠所在是:

import org.eclipse.persistence.jaxb.JAXBContextFactory; 

這是完全一樣的,但它明確規定在Java代碼中,而不是隱含在配置文件。

+0

謝謝,它幫助了很多。 – eugene82 2016-06-01 14:50:02