在Glassfish中传递属性JAXB上下文

时间:2015-11-13 11:13:58

标签: jaxb glassfish moxy

我正在使用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)。

1 个答案:

答案 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。