java - 如何显示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)
解决方案
发现它是在我们自己的代码中设置的:javax.servlet.Filter.doFilter,这是一个可怕的错误。
推荐阅读
- java - 生成列表而不是列表
- elm - elm.json 与 elm-package.json 有什么区别
- java - 如何使用 Spring Batch 和 Spring Boot 读取和写入具有 10gb 数据的日志文件 (catalina.out)?
- laravel - LARAVEL - 如何打印双花括号
- javascript - include() 函数在比较数组中的值时随机工作
- javascript - “.then(() => Storage.deployed())”在 Javascript 中的实际含义是什么?
- python - Gtk Grid attach-宽度不会调整元素大小
- asp.net - 405 方法不允许用于 ASP.NET WebAPI 中的 PUT 和 DELETE
- python - Numpy 转置向量
- java - 我想交换数组 b 的值而不是数组 a 的值。但是数组 a 的值也在同时变化。谁能告诉我为什么会这样?