Apache camel 服务器端XSD验证错误的Apache CXF停止事务传播

Apache camel 服务器端XSD验证错误的Apache CXF停止事务传播,apache-camel,cxf,Apache Camel,Cxf,我们有CXF SOAP over JMS服务,并使用schema validation enabled属性启用了XSD验证。使用此配置,对于所有类型的错误,都会发生事务回滚。我们希望停止XSD验证错误的回滚,并允许运行时错误的回滚 我们已经添加了OneException(ValidationException.class).handled(true),但是对于SOAP over JMS,当发生验证异常时,不会执行下面的代码,并在其自身之前调用回滚 在Apache CXF中是否有一种方法可以根据异

我们有CXF SOAP over JMS服务,并使用schema validation enabled属性启用了XSD验证。使用此配置,对于所有类型的错误,都会发生事务回滚。我们希望停止XSD验证错误的回滚,并允许运行时错误的回滚

我们已经添加了OneException(ValidationException.class).handled(true),但是对于SOAP over JMS,当发生验证异常时,不会执行下面的代码,并在其自身之前调用回滚


在Apache CXF中是否有一种方法可以根据异常类型控制回滚—而不是对异常的xml验证类型进行回滚?

您的问题包含的信息很少

但是,正如您所写,您已经启用了CXF的
模式验证enabled
属性。因此,如果请求不是模式有效的,框架将停止它。请求未到达您的代码。我猜客户端从CXF接收到Soap错误

在CXF中,您可以自定义很多内容您甚至可以编写自己的JAXB验证程序,以替换或扩展CXF验证程序,并根据需要处理无效请求。有关简单示例,请参见。然后可以这样配置它

<jaxws:properties>
        <entry key="schema-validation-enabled" value="true" />
        <entry key="jaxb-validation-event-handler">
            <bean class="com.your.package.MyCustomHandler"></bean>
        </entry>
</jaxws:properties>

许多CXF定制也都是通过使用来完成的。但我不知道它是否也适用于验证


当然,您也可以在CXF中禁用模式验证并使用进行验证。但是,您必须注意不能转换为对象的无效请求

欢迎来到Stackoverflow!没有足够的细节,任何人都无法进一步帮助您。请看一看并完善你的问题。添加您现有的路由代码,说明您的camel版本,并根据需要粘贴任何堆栈跟踪。