JAX-RS(Jersey)でのSpringとの連携

JerseyとSpringとの連携について、Jerseyには、Springとの連携用のサーブレットクラスがあるので、それを使います。
web.xmlにSpringとの連携用のサーブレットの設定とSpringのリスナーを設定します。
Springの設定は、通常と同じく、listenerとconfigを下記の様に記述するだけです。

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/config/spring/applicationContext.xml</param-value>
</context-param>

その後に、JerseyのSpringとの連携用のサーブレットを記述してweb.xmlの設定は、完了です。

<servlet>
  <servlet-name>Jersey REST Service</servlet-name>
  <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.resorceConfigClass</param-name>
      <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
    </init-para>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>jp.co.dev.system.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/MessageResource/*</url-pattern>  
  </servlet-mapping> 

呼び出されるRESTサービスクラスに@Componentか@Serviceをつけます。
どっちを使うかは、機能的にどっちでも問題ありません。
@Serviceを使った場合は、下記の様になります。

package jp.co.dev.system.service;

import javax.ws.rs.Get;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.springframework.stereotype.Service;

@Path("/service")
@Service("messageResource")
public class MessageResoruce {
   @GET
   @Path(value="/getMessageByMessageId")
   @Produces(MediaType.TEXT_XML)
   public MessageResponse getMessageByMessageId(
   .......

これで、上記のクラスに対して、ロジッククラスなどを下記の様な感じで、Autowireさせることができます。

@Path("/service")
@Service("messageResource")
public class MessageResoruce {

   @Autowired
   @Qualifier("messageResourceLogic")
   MessageResourceLogic messageRsourceLogic;

   @GET
   @Path(value="/getMessageByMessageId")
   @Produces(MediaType.TEXT_XML)
   public MessageResponse getMessageByMessageId(
                                  @QueryParam("messageId") String messageId)
                                                  throws ApplicationFaultException,SystemFaultException {
            MessageResponse response = messageResourceLogic.getMessageId(messageId);
            return response;
   }