Я пытаюсь запустить REST Api, созданный мной в Java; но я получаю, что экземпляр ResourceConfig не содержит никаких исключений корневых ресурсов, я знаю, что это исключение обычно возникает, когда имя пакета, которое мы дали в качестве пакета поставщика, не содержит какого-либо класса с аннотацией @Path, но здесь это не так. Не могли бы вы взглянуть на web.xml и класс и предложить, что мне нужно изменить.
Я пытался решить это честно самостоятельно (за последние 2 дня)
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>restWebservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Java-файл
package restWebservice;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("Movies")
class RestController{
@GET
@Path("/{movieName}")
public Movie getMovieDetails(@PathParam("{movieName}") String nameOfMovie){
Movie movie=null;
if(nameOfMovie.contains("Ragnarok")){
new Movie("Thor-Ragnarok","Released on 3 November 2017 in India");
}else{
new Movie("Thor","Released on 29 April 2011 in India");
}
return movie;
}
@POST
public Response saveMovieDetails(@QueryParam("movieName") String nameOfMovie, @QueryParam("releaseDate") String dateOfRelease){
String finalSave = nameOfMovie + " and it's release Information "+ dateOfRelease;
return Response.status(200).entity(finalSave).build();
}
}
class Movie{
private String movieName;
private String movieReleaseDate;
public Movie(String name,String date){
this.movieName = name;
this.movieReleaseDate = date;
}
public void displayMovieInfo(){
System.out.println( this.movieName+" and "+ this.movieReleaseDate);
}
}
.
Древовидная структура проекта
├── java
│ └── restWebservice
│ └── RestController.java
├── pom.xml
├── src
│ └── main
│ ├── resources
│ └── webapp
│ ├── WEB-INF
│ │ └── web.xml
│ └── index.jsp
└── target
├── classes
│ └── restWebservice
│ ├── Movie.class
│ └── RestController.class
├── m2e-wtp
│ └── web-resources
│ └── META-INF
│ ├── MANIFEST.MF
│ └── maven
│ └── RESTJava
│ └── MovieService
│ ├── pom.properties
│ └── pom.xml
└── test-classes