Tôi sử dụng dịch vụ nghỉ ngơi bên trong ứng dụng của mình và tôi muốn sử dụng dịch vụ đậu mùa xuân. Mùa xuân tôi đang sử dụng là phiên bản 2.5. Một phần của web.xml:Dịch vụ Jersey REST là Thành phần mùa xuân
<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>
Trong pom.xml tôi có phụ thuộc:
<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>
Trong context.xml tôi đã thêm:
<context:component-scan base-package="com.app.rest"/>
và cũng:
<tx:annotation-driven proxy-target-class="true" />
Phần thú vị của se rvice lớp:
@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();
}
phương thức GET hoạt động như dự kiến (về cơ bản nó hoạt động :)), nhưng phương thức POST ném NullPointerException trên dòng: if (validator.validate (DTO) == 200).
Tôi không biết tại sao chú thích @Autowired không hoạt động ở đây, ale tôi đã thử với @Resource - cùng một hiệu ứng.
Bất kỳ mẹo nào cũng có thể hữu ích.
Xin cảm ơn trước, Marek.
tôi hy vọng tôi có thể làm điều đó mà không cần áo xuân, cũng ốm thêm exludes vào mùa xuân trong sự phụ thuộc này và hy vọng nó wil tôi làm việc :) – Marek