Tôi có một ứng dụng đơn giản của Spring & Jersey, hoạt động hoàn hảo tốt cho các yêu cầu tiêu thụ thông qua một Tài nguyên đơn giản. Tuy nhiên, tôi muốn trả về một phản hồi JSON - chứa một tuần tự JSON đơn giản của một đối tượng. Để đạt được điều này, tôi đã thêm một phụ thuộc maven cho jersey-json
. Tuy nhiên, ngay sau khi tôi thêm sự phụ thuộc này, tôi nhận được lỗi này khi khởi động máy chủ:Jersey Không có nhà cung cấp Ứng dụng Web nào hiện diện khi áo phụ thuộc * thêm
com.sun.jersey.api.container.ContainerException: No WebApplication provider is present at
com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69) at
com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)
Tôi không rõ ràng chính xác nhà cung cấp là gì, nhưng tôi chắc chắn rằng phải có mặc định người ta tìm thấy.
Để hoàn chỉnh, đây là tài nguyên của tôi:
@Path("/scan")
@Resource
@Component
public class ScanResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{barcode}")
public List<Scan> getScansForBarcode(@PathParam("barcode") Long barcode){
..snip..
return results;
}
}
đối tượng A Scan là một đối tượng Entity Bean đơn giản.
Các phụ thuộc mvn là:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.11</version>
</dependency>
Có ai biết tại sao tôi có thể nhận được các No WebApplication provider is present
ngoại lệ? Bất kỳ suy nghĩ về cách tôi có thể giải quyết nó?
Cảm ơn
bạn có chắc rằng bạn có jersey-server trên classpath không? Hãy nhớ rằng, tất cả các mô-đun áo phải có cùng phiên bản chính xác - chúng sẽ không thể tìm thấy các nhà cung cấp khác nếu điều kiện này không được đáp ứng. –
Cảm ơn Pavel - hãy tiếp tục và đưa ra nhận xét này một câu trả lời, và tôi sẽ chấp nhận nó. – idbentley
đã hoàn tất, cảm ơn! :) –