Я пытаюсь интегрировать Джерси (версия 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.
С Уважением