Vir*_*nie 2 java web-services cxf jax-ws jboss7.x
在CXF SOAP Web服务中,我使用以下注释来禁用xsd验证:
@EndpointProperties({
@EndpointProperty(key = "set-jaxb-validation-event-handler", value = "false")
})
Run Code Online (Sandbox Code Playgroud)
我希望在运行时控制验证(根据从数据库检索的设置的值启用/禁用它).我的问题是:是否可以在运行时禁用/启用此处理程序?也许通过编写自定义事件处理程序而根本不使用此属性?
谢谢.
编辑:一个选项不是禁用验证set-jaxb-validation-handler,而是子类ValidationEventHandler.正如解释在这里,我会再检查数据库设定handleEvent,并根据其价值回归.
但是这种方法仍有一些缺点:首先,这个web服务配置了注释,我似乎无法找到一种方法来应用ValidationEventHandler带注释(同样的问题:如何在使用时在JAXB unmarshaller上设置自定义ValidationEventHandler注释).
其次,这意味着即使我不需要验证也会执行; 然后我将失去任何性能优势.
它实际上并不完全符合我的需要,所以我仍然愿意接受任何建议.
对的,这是可能的.
MyService service = new MyService();
MyServiceInterface port = service.getMyServicePort();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext().put(
"set-jaxb-validation-event-handler", Boolean.FALSE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6543 次 |
| 最近记录: |