onfiguración de múltiples resouceBean en CXF usando Spring
Estoy usando CXF RS 2.5.1 con Spring 3.0.6-RELEASE. Me gustaría tener múltiples clases de implementación para "un único punto final". Veo que este problema se informó y solucionóhttps: //issues.apache.org/jira/browse/CXF-243, sin embargo, cuando trato de hacerlo, CXF solo selecciona la primera clase de recurso de jaxrs: etiqueta serviceBeans. Para la otra solicitud, veo este mensaje en la consola de tomcat como "No se encuentra ninguna ruta de solicitud / cuenta / descanso / transferencia que coincida con la operación". A continuación se muestra la configuración. Agradezco cualquier aporte.
web.xml
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:account-servlet.xml</param-value>
</context-param>
<servlet>
<servlet-name>CXF Servlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXF Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
account-servlet.xml
<jaxrs:server id="accountService" address="/rest">
<jaxrs:serviceBeans>
<ref bean="transferService" />
<ref bean="balanceService"/>
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
</jaxrs:server>
<bean id="transferService" class="com.mycompany.service.TransferService"/>
<bean id="balanceService" class="com.mycompany.service.BalanceService"/>
BalanceService.java (importaciones omitidas)
package com.mycompany.service;
@Path("/")
@Produces("application/xml")
public class BalanceService{
@GET
@Path("/balance")
public String getBalance() {
StringBuilder response = new StringBuilder(128);
response.append("<Balance>")
,.append("<amount>").append("250.00").append("</amount>")
.append("</Balance>");
return response.toString();
}
}
TransferService.java (importaciones omitidas)
package com.mycompany.service;
@Path("/")
@Produces("application/xml")
public class TransferService {
@GET
@Path("/transfer")
public String getTransfer() {
StringBuilder response = new StringBuilder(128);
response.append("<Transfer>")
.append("<amount>").append("350.00").append("</amount>")
.append("</Transfer>");
return response.toString();
}
}
Por favor ignore cualquier irregularidad / estándar de programación ya que es solo una aplicación de muestra para el POC.