问题
I have a bean
@XmlRootElement(name = "alpha")
public class MyBean {
private String thetaValue;
@XmlPath("beta/theta/text()")
public String getThetaValue() {
return this.thetaValue;
}
public void setThetaValue(String thetaValue) {
this.thetaValue = thetaValue;
}
}
This is annotated using eclipselink moxy jaxb. I want to use the same bean and Xpath to host a web service. How do I do this? the web service will be hosted on tomcat 6 or 7
回答1:
There isn't a standards based integration point between JAX-WS (JSR-224) and JAXB (JSR-222) implementations. This means support for EclipseLink MOXy as the JAXB provider is dependent upon the JAX-WS implementation (see note below).
JAX-WS Provider - Reference Implementation
Support for MOXy is baked right into the JAX-WS reference implementation. This means any environment leveraging a new enough version of the JAX-WS RI should be able to leverage MOXy as the JAXB provider. I need to find out more about the specifics to do this.
- http://mvnrepository.com/artifact/com.sun.xml.ws/jaxws-eclipselink-plugin
Other JAX-WS Providers
You could leverage the javax.xml.ws.Provider
interface instead of the traditional service endpoint interface. Provider
gives you access to the actual XML message. With access to the XML message you can interact with it directly using MOXy.
- http://blog.bdoughan.com/2013/02/leveraging-moxy-in-your-web-service-via.html
Note
You can create traditional JAX-WS Web Services that leverage MOXy's extends annotations in the following environments:
- WebLogic (12.1.1 and above) - EclipseLink MOXy is the JAXB Provider in WebLogic Server 12c
- GlassFish (3.1.2 and above) - GlassFish 3.1.2 is Full of MOXy (EclipseLink JAXB)
来源:https://stackoverflow.com/questions/13474816/how-to-use-moxy-xpath-annotated-beans-in-web-services