Tengo un servicio de descanso dentro de mi aplicación y me gustaría utilizar frijoles primavera. Spring que estoy usando es la versión 2.5. Parte de web.xml:Jersey REST servicio como Spring Component
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.app.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
En pom.xml i tienen dependencias:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.8</version>
</dependency>
En context.xml he añadido:
<context:component-scan base-package="com.app.rest"/>
y también:
<tx:annotation-driven proxy-target-class="true" />
Parte interesante de se clase rvice:
@Component
@Path("/notification")
@Scope("singleton")
public class PushNotification {
@Autowired
//@Resource(name = "sendMessageServiceFacade")
private SendMessageServiceFacade sendMessageServiceFacade;
@Autowired
//@Resource(name = "responseCode")
private NotificationResponseMessage responseCode;
@Autowired
//@Resource(name = "validator")
private PushMessagePreValidator validator;
@POST
@Path("/register")
@Consumes(MediaType.APPLICATION_JSON)
public Response registerDevice(PushWooshRegisterDeviceDto dto) {
if (validator.validate(dto) == 200) {
return invokePushMessage(dto, PushMessageType.REGISTER.getMsgType());
} else {
return buildFailResponse();
}
}
@GET
@Path("/{param}")
public Response ping(@PathParam("param") String param) {
return Response.status(200).entity(param).build();
}
método GET funciona como se esperaba (básicamente funciona :)), pero el método POST lanza NullPointerException en línea: if (validator.validate (dto) == 200).
No sé por qué @Autowired annotation doesnt trabajo aquí, ale intenté con @Resource - mismo efecto.
Cualquier sugerencia puede ayudar.
Gracias de antemano, Marek.
Tenía la esperanza de que puedo hacerlo sin el jersey de la primavera, así enferma añadir exludes en primavera en esta dependencia y es de esperar que duraran Yo trabajo :) – Marek