当前位置: 首页 > 知识库问答 >
问题:

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

汤承允
2023-03-14

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

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

在Apache CXF中有没有一种方法,我们可以根据异常类型控制回滚-没有回滚xml验证类型的异常?

共有1个答案

柳镜
2023-03-14

你的问题包含的信息很少。

但是,正如您所写的,您已经启用了CXF的schema validation 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中禁用模式验证,并使用驼峰验证器进行验证。但是,您必须注意不能转换为对象的无效请求。

 类似资料:
  • 我有以下xml: 我在网上验证了xml,它的格式很好。接下来我做了架构: 当我尝试在线验证时,会出现以下错误:http://www.utilities-online.info/xsdvalidation/?save=72595340-b1e9-4061-a655-c6cfb9cdac44-XSD验证#。USIxpqw1pi点击按钮根据xsd验证xml并查看所有错误。有人知道如何毫无差错地解决这个问

  • 问题内容: 进行客户端或服务器端验证哪个更好? 在我们的情况下,我们正在使用 jQuery和MVC。 在我们的视图和控制器之间传递的JSON数据。 我所做的许多验证工作都是在用户输入数据时对其进行验证。例如,我使用该事件来防止文本框中的字母,设置最大字符数,并且该数字在一定范围内。 我想更好的问题是,与客户端相比,进行服务器端验证是否有任何好处? 真棒的答案大家。我们拥有的网站受到密码保护,并且用

  • 我过去认为,在分层应用程序(控制器或服务)中,将验证逻辑放在何处并不重要,但最近正在开发需要事务的服务(使用spring)。Spring使用方面创建代理,Spring代码如下所示: org.springframework.transaction.interceptor.事务支持 所以从我这里看到的,spring首先打开事务,然后执行代码。考虑到验证可能会失败,并且根本不需要DB调用,这是否意味着将

  • 问题内容: 我已经到了秃顶几步之遥… 我正在尝试运行一项服务,该服务将检查我工作中的服务器是否正在运行。应该每5分钟执行一次。 我经历过TimerTask,ScheduledExecutorService,最后是Handler。他们都工作了好几个小时,除了一些不准确的地方外,还有1-5分钟的时间,然后突然,“计时器”就停止了发射。 现在,我已经了解到,如果Scheduler遇到未捕获的异常,它将停

  • 问题内容: 我显然正在运行一个实例,因为当我尝试通过输入来启动新服务器时,遇到了以下问题: 我不知道如何停止此服务器并启动新服务器。 在CLI中键入命令时,可以追加任何命令吗? 我的操作系统是Ubuntu 10.04。 问题答案: 连接到节点实例并使用shutdown命令,或者如果您在ubuntu上,则可以尝试通过init.d重新启动Redis服务器: 或停止/启动它: 在Mac上