我試圖使用EclipseLink MOXy作爲部署在JBoss EAP 6.1.0.Beta1應用服務器上的JAX-WS web服務的JAXB提供者。目前,我已按here所述實施了javax.xml.ws.Provider
,並將jaxb.properties
文件放入包含我的Provider
實現和網絡服務中使用的域類的包中。下面是這個文件的內容:在JBoss EAP 6.1上使用EclipseLink MOXy作爲JAX-WS的JAXB提供者
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
當我嘗試部署包含我在日誌中出現以下錯誤該服務網絡的應用程序:
@XmlValue is not allowed on a class that derives another class
的主要原因使用莫西作爲JAXB-提供者在我的情況下是能夠在子類中使用@XmlValue
註釋。當我嘗試使用與使用MOXy的測試應用程序中的Web服務相同的類進行解組時,不會出現此錯誤。此外,org.eclipse.persistence
程序包及其子程序包中沒有類,而只有com.sun.xml.bind.v2
類。顯然,當部署Web應用程序時,MOXy不會被使用。從org.eclipse.persistence
所有必需的Maven構件是WAR文件:
$ jar tf my-app.war | grep org.eclipse.persistence
WEB-INF/lib/org.eclipse.persistence.antlr-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.asm-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0.jar
WEB-INF/lib/org.eclipse.persistence.core-2.5.0.jar
我在做什麼錯?據我所知,Provider
是在調用Web服務時在運行時調用的。但是在部署時發生錯誤。除了Provider
之外,我還應該重新實現嗎?
我試過這個。 MOXy API可用。 – vect