2015-08-04 3 views
0

я создаю веб-сервис Джерси JAX-RS со следующим:Как загрузить Spring ApplicationContext в Заявлении Джерси

package com.mycompany.rest.config; 

import java.util.Set; 
import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 


@ApplicationPath("") 
public class ApplicationConfig extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
     return getRestResourceClasses(); 
    } 

    private Set<Class<?>> getRestResourceClasses() { 
     Set<Class<?>> resources = new java.util.HashSet<Class<?>>(); 
     resources.add(com.mycompany.rest.controllers.UserController.class); 
     return resources; 
    } 
} 

Однако, когда я пытаюсь интегрировать пружинный ApplicationContext такие как:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:component-scan base-package="com.mycompany.rest.user"/> 


    <bean id="userService" class="com.mycompany.rest.user.UserServiceImpl" /> 

</beans> 

Я получаю нулевые указатели от моего класса контроллера для пользовательской службы, загружаемой компонентом, вставленным выше. Я предполагаю, что это связано с тем, что контекст приложения не загружается в приложение Джерси.

Есть ли способ сделать это?

ответ

1

Если вы хотите добавить весенние бобы в классы ресурсов Джерси, вам нужно добавить зависимость jersey-spring3 к вашему пути к классу. см https://jersey.java.net/documentation/latest/spring.html

привет-мир пример можно найти в https://github.com/jersey/jersey/tree/2.19/examples/helloworld-spring-webapp

+0

Привет, спасибо за ссылку. Но, похоже, проблема с файлом pom. Я получаю сообщение об ошибке при попытке сделать mvn-пакет. Эта ошибка: Невозможно получить информацию о зависимостях: невозможно прочитать файл метаданных для артефакта 'org.glassfish.jersey.containers: jersey-container-servlet: jar': недопустимая версия JDK в профиле 'jdk1.7 +': неограниченный диапазон : [1.7, для проекта org.glassfish.jersey: проект org.glassfish.jersey.containers: jersey-container-servlet: jar: 2.19 – gstanley

+0

@gstanley, не уверен, что он по-прежнему актуальный, но у меня были подобные проблемы и разрешены это за счет исключения конкретных переходных зависимостей: ' org.glassfish.jersey.ext Джерси-spring3 2.22.1 org.springframework весна-бобы org.springframework весна-бобы ... ' –

Смежные вопросы