首页 > 解决方案 > 如何显示cxf故障在哪里被截获?

问题描述

我的服务收到 400 响应 CXF 故障,我找不到 400 的设置位置,

我到处搜索,异常映射器没有命中这个故障,响应是一个tomcat格式的html

从 Apache Tomcat/8.0.46 开始的东西 - 错误报告

这让我相信它没有映射到正确的响应,

但我认为应该是 500 而不是 400,

有什么方法可以显示拦截器的位置,例如 CXF 中调试器控制台输出的详细选项?

太感谢了!

05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Chain org.apache.cxf.phase.PhaseInterceptorChain@e16a6b5 was created. Current flow:
  prepare-send [MessageSenderInterceptor]
  marshal [JAXRSDefaultFaultOutInterceptor]

05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Invoking handleMessage on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor@51645fab
05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Adding interceptor org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@33fad37 to phase prepare-send-ending
05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Chain org.apache.cxf.phase.PhaseInterceptorChain@e16a6b5 was modified. Current flow:
  prepare-send [MessageSenderInterceptor]
  marshal [JAXRSDefaultFaultOutInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Invoking handleMessage on interceptor org.apache.cxf.jaxrs.interceptor.JAXRSDefaultFaultOutInterceptor@21747905
05 Mar 2019 09:58:36,402 DEBUG [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Invoking handleFault on interceptor org.apache.cxf.jaxrs.interceptor.JAXRSDefaultFaultOutInterceptor@21747905
05 Mar 2019 09:58:36,402  WARN [http-nio-8080-exec-4] - x-dxe-requestid=bd5f3c71-0fe7-4ed7-80f6-46049db8b26d Exception in handleFault on interceptor org.apache.cxf.jaxrs.interceptor.JAXRSDefaultFaultOutInterceptor@21747905
org.apache.cxf.interceptor.Fault: com.dxe.comm.domain._2012_11_01.ComTransaction.setTransactionNetworkId(Ljava/lang/String;)V
    at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)

标签: javajax-rscxf

解决方案


发现它是在我们自己的代码中设置的:javax.servlet.Filter.doFilter,这是一个可怕的错误。


推荐阅读