Интеграция jersey 2.5 и Spring 2.5 не работает

Я пытаюсь интегрировать Джерси (версия 2.x) в наш текущий проект, в котором используется Spring 2.5. Я выполнил все шаги, упомянутые в их примере интеграции веб-приложения Spring, но, похоже, не могу заставить работать автоматическую проводку при вызове компонента Jersey.

Мои файлы конфигурации/класса приведены ниже,

ФАЙЛ WEB.XML

<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>
        org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>com.inrev.rest.XXXSpringIntegration</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>jersey</servlet-name>
    <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

ВЕСЕННИЙ ФАЙЛ

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>  

<bean name="myresource" class="com.xxx.rest.MyResource" autowire="byName"></bean>

КЛАСС интеграции XXXSpring

public XXXSpringIntegration() 
{
    register(RequestContextFilter.class);
    register(MyResource.class);
    System.err.println("I am getting registered");
}

MyResource.class

@Path("myresource")
public class MyResource {

@Autowired
private IRAdminDAO adminDAO;

public MyResource()
{
    System.err.println("Getting ready now");
}

/**
 * Method handling HTTP GET requests. The returned object will be sent
 * to the client as "text/plain" media type.
 *
 * @return String that will be returned as a text/plain response.
 */
@Path("/list")
@GET
@Produces("application/json")
public String list() 
{
    System.err.println("Adming DAO "+adminDAO);

    return "Got it!";
}

public void setAdminDAO(IRAdminDAO adminDAO)
{
    System.err.println("Adming dao being set "+adminDAO);
    this.adminDAO = adminDAO;
}

}

Добавлена ​​конфигурация для adminDAO

<bean id="adminDAO" class="com.xxx.bm.dao.impl.IRAdminDAOImpl">
    <property name="sessionFactory">
        <ref local="sessionFactory" />
    </property>
</bean>

Я уверен, что автоматическая проводка работает, когда Spring инициализируется, так как Syserr в установщике вызывается, когда файл инициализируется Spring. Однако, когда я делаю вызов API, adminDAO имеет значение null.

 http://bm.com:8080/bm/rest/myresource/list

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

С Уважением


person Cool Techie    schedule 13.08.2014    source источник
comment
Я почти уверен, что интеграция Spring и Jersey работает для версии 3 Spring, а не 2.5.   -  person geoand    schedule 13.08.2014
comment
@geoand будет ли работать старая версия Джерси с Spring 2.5? Мой первоначальный подозреваемый был таким же, но я не могу найти никакой документации по тому же самому, поэтому хочу быть уверенным, прежде чем переходить к майке 1.x.   -  person Cool Techie    schedule 13.08.2014
comment
Я понятия не имею, можно ли интегрировать Spring 2.5 с Джерси. Я использовал такую ​​интеграцию только с Spring 3 или новее.   -  person geoand    schedule 13.08.2014
comment
Где конфигурация для adminDao?   -  person jny    schedule 13.08.2014
comment
@jny добавил конфиг   -  person Cool Techie    schedule 13.08.2014
comment
Перешел на последнюю версию Spring 4.0.6, но проблема осталась.   -  person Cool Techie    schedule 14.08.2014


Ответы (1)


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

Кроме того, нет исключений, указывающих на то, что банка отсутствует. jersey-spring3-2.11.jar - звезда.

person Cool Techie    schedule 15.08.2014