2013-12-20 29 views
2

我使用的是創建2個REST容器。我想保留一些常見的東西,比如JSON提供者,驗證攔截器,使用cxf總線的異常處理。下面是我的應用上下文。「org.apache.cxf.jaxrs.bus.providers」無法正常工作

<cxf:bus> 
    <cxf:properties> 
     <entry key="org.apache.cxf.jaxrs.provider" key-ref="busProviders"/> 
    </cxf:properties> 
</cxf:bus> 

    <util:list id="busProviders"> 
    <ref bean="requestInterceptor"/> 
    <ref bean="jsonProvider"/> 
    <ref bean="exceptionHandler"/> 
    </util:list> 

<bean id="requestInterceptor" class="com.sample.interceptor.ServiceValidationInterceptor"/> 
<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" /> 
<bean id="exceptionHandler" class="com.sample.exception.ExceptionHandler" /> 

<!-- ======================== REST Container for Service1 ======================================= --> 
<jaxrs:server id="restContainer" address="/service1"> 
     <jaxrs:serviceBeans> 
      <ref bean="endecaService"/> 
     </jaxrs:serviceBeans> 
     <jaxrs:inInterceptors> 
      <ref bean="logInbound"/> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpInInterceptor"> 
      <property name="callbackParam" value="callback"/> 
      </bean> 
     </jaxrs:inInterceptors> 
     <jaxrs:outInterceptors> 
      <ref bean="logOutbound"/> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPreStreamInterceptor"> 
      <property name="mediaType" value="application/json"/> 
      </bean> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPostStreamInterceptor"> 
      <property name="paddingEnd" value=")"/> 
      </bean> 
     </jaxrs:outInterceptors> 
    </jaxrs:server> 

    <!-- ======================== REST Container for Service2========================================== --> 
<jaxrs:server id="restContainerForHelpcenter" address="/service2"> 
    <jaxrs:serviceBeans> 
     <ref bean="helpCenter"/> 
    </jaxrs:serviceBeans> 
     <jaxrs:inInterceptors> 
      <ref bean="logInbound"/> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpInInterceptor"> 
      <property name="callbackParam" value="callback"/> 
      </bean> 
     </jaxrs:inInterceptors> 
     <jaxrs:outInterceptors> 
      <ref bean="logOutbound"/> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPreStreamInterceptor"> 
      <property name="mediaType" value="application/json"/> 
      </bean> 
      <bean class="org.apache.cxf.jaxrs.provider.jsonp.JsonpPostStreamInterceptor"> 
      <property name="paddingEnd" value=")"/> 
      </bean> 
     </jaxrs:outInterceptors> 
    </jaxrs:server> 

如果我將上面的2合併成一個帶有2個服務bean的單個,那麼它工作正常,但在這種情況下不能。 有沒有人爲2個不同的REST容器使用了cxf:bus功能,請讓我知道。

回答

0

通知s在屬性名的末尾org.apache.cxf.jaxrs.bus.provider 小號