1. 程式人生 > >SSH整合CXF專案啟動時出現告警日誌

SSH整合CXF專案啟動時出現告警日誌

spring 4.1.3.RELEASE + cxf 2.5.0框架,在專案啟動時出現一大堆告警日誌,雖然不影響專案正常執行,但看著很刺眼,所以要想辦法清除掉。

告警1:Import of META-INF/cxf/cxf-extension-soap.xml has been deprecated and is unnecessary
原因:之前老版本的配置是要求匯入cxf-extension-soap.xml檔案,如下所示:

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
<import resource
="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

新版本已經不作此要求,所以會出現這樣的警告。

解決辦法:找到spring中cxf相關的配置檔案applicationContext.xml,將import部分的cxf-extension-soap.xml這一行刪除掉。

告警2:org.apache.cxf.endpoint.ServiceImpl initDestination;
Setting the server’s publish address to be /orderService;
org.apache.cxf.common.injection.ResourceInjector - visitField;
fail to resolve resource com.xxx.OrderServiceImpl/xxx;
其中OrderServiceImpl為實現類,com.xxx.OrderServiceImpl/xxx為該實現注入的成員變數。
endpoint配置資訊如下:

<jaxws:endpoint id = "OrderService" address="/orderService" implementor="#orderServiceImpl" />
      <bean id = "orderServiceImpl" class="com.xxx.OrderService">

原因:endpoint的實現類注入的依賴服務類,沒有按照指定的格式寫,這樣的日誌有特別多,因為每個實現類都注入了許多依賴服務類,如
@Resource
private AuthService authService;
這樣寫也沒有問題,不用影響正常使用,但就是會有警告,原因是@Resource沒有新增name屬性,改成這樣,警告就消失了,如下所示:
@Resource(name=”authService”)
private AuthService authService;