J'utilise reseasy 3.0.9 services web RESTful avec jsf 2.2 et le printemps 4.3 application intégrée de cadre en utilisant wildfly 10 comme serveur d'application, je ne pouvais pas en mesure d'injecter le haricot de printemps dans le repos classe. ci-dessous est la configuration dans l'application.spring @Autowire annotation ne fonctionne pas dans la classe resteasy
in web.xml
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.test.config.AppConfig</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.test.rest.PrintService</param-value>
</context-param>
Ma classe de service
@Path("/customer") @Component
public class PrintService {
@Autowired // not working allways gives nullpointerexception
CustomerBo customerBo;
@GET
@Path("/print")
public Response printMessage() {
// customerBo = (CustomerBo) SpringApplicationContext.getBean("customerBo"); here bean is getting injected
String result = customerBo.getMsg();
return Response.status(200).entity(result).build();
}
}
@Component
public class CustomerBo {
@PersistenceContext
EntityManager entityManager;
@Autowired
Bean2 bean2;
public String getMsg() {
entityManager.createQuery("Select * from employee e"); // nullpointerException
return "RESTEasy + Spring example" + bean2.msgFromBean2(); //nullpointerException
}
dans pom.xml
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>3.0.9.Final</version>
</dependency>
autowired l'intérieur customerBo est également nulle pour ex: @peristenceContext entityManager me donner AllWays null – kim
pouvez-vous mettre à jour votre définition haricot customerBo – kuhajeyan
ajouté customerBo définition – kim