我正在使用Glassfish 4.1开发Web服务,我已经用MOXy(2.6.1)替换了默认的JAXB提供程序 - 我添加了“-Dcom.sun.xml.ws.spi.db”。 BindingContextFactory = com.sun.xml.ws.db.toplink.JAXBContextFactory“到Glassfish VM选项。
Web服务是从JAXB带注释的Java类创建的,我想将一些属性传递给Glassfish创建的JAXBContext(例如org.eclipse.persistence.jaxb.JAXBContextProperties.BEAN_VALIDATION_FACETS)。
答案 0 :(得分:1)
我有下一个网络服务:
@WebService(serviceName = "AdminService")
@Stateless()
public class AdminService {
/**
* Web service operation
* @param loginRQ
* @return
*/
@WebMethod(operationName = "login")
public @WebResult(name="loginRS") LoginRS login( @WebParam(name = "loginRQ") final LoginRQ loginRQ) {
}
}
LoginRS是一个类,它包含一些成员bean验证注释,如@Size(min = 32, max = 32)
。当JAX-WS生成WSDL时,包含的模式(由模式生成器类生成)不包含相应的限制。
JAXB RI还不支持这个(https://java.net/jira/browse/JAXB-917)所以我用MOXy替换了JAXB RI实现。 MOXy具有下一个属性org.eclipse.persistence.jaxb.JAXBContextProperties.BEAN_VALIDATION_FACETS
,用于告诉JAXBContext创建XSD限制。
我没有找到一种方法将这个属性(值为#39; true')传递给Glassfish在应用程序启动时创建的MOXy JAXBContext。