Apache CXF Service (SOAP) CXF项目默认通过cxf.xml文件注入相关配置启动
老项目有个服务是通过cxf暴露提供服务,看到最终的配置文件没有在项目里的代码有读取的地方,想来,应该是作为约定,那一定是JAR包里面有读取的地方。
一开始直接看WEB.xml配置的servlet,org.apache.cxf.transport.servlet.CXFServlet,但光看方法名,加上不够敏感,胡乱找了一通还是没找到,想起看看启动日志吧,根据读取cxf.xml这个文件的这个类,不够熟练,最后通过此项目启动的第一行日志,“o.a.c.b.spring.BusApplicationContext - Refreshing org.apache.cxf.bus.spring.BusApplicationContext”,当然BusApplicationContext也是调用的父类的方法,一直找到是父类的AbstractApplicationContext#prepareRefresh()方法,通过断点和调用栈,最后定位到获取配置项的代码,里面会去读取一个常量,里面配置了默认的配置项文件,路径就是src所在的根路径吧。


PS:一开始搜索好像没搜到,用的搜索关键字:CXF 默认配置项,但搜出来的是怎么配置这个cxf.xml文件,可能还需要继续优化搜索关键字,想来已经有人跟过源码了。但还是记录一下,欢迎批评建议。

浙公网安备 33010602011771号