【发布时间】:2018-04-29 13:14:53
【问题描述】:
我正在尝试运行我在 java 中构建的 REST Api;但是我得到的 ResourceConfig 实例不包含任何根资源异常,我知道当我们作为提供程序包提供的包名称不包含任何带有 @Path 注释的类时,通常会出现此异常,但这里不是这种情况。您能否查看 web.xml 和 class 并建议我需要更改的内容。 我试图自己诚实地解决它(过去 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
【问题讨论】: