gpt4 book ai didi

java - ResourceConfig 实例不包含 REST API 中的任何根资源类异常

转载 作者:行者123 更新时间:2023-12-02 11:18:35 29 4
gpt4 key购买 nike

我正在尝试运行我用java构建的REST Api;但我收到 ResourceConfig 实例不包含任何根资源异常,我知道当我们作为提供程序包提供的包名称不包含任何带有 @Path 注释的类时,通常会出现此异常,但这里不是这种情况。您能否查看 web.xml 和类并建议我需要更改哪些内容。我已经尝试自己诚实地解决这个问题(过去两天)

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);
}


}


.

项目 TreeView

├── 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

最佳答案

<param-name>jersey.config.server.provider.packages</param-name>

此参数(告诉 Jersey 要扫描哪个包)适用于 Jersey 2.x。 1.x版本是

com.sun.jersey.config.property.packages

另外:

  • 公开您的资源类,将模型移至其自己的类文件中,然后将其公开。
  • 您的 Java 代码应该位于 src/main/java 中,因此将 restWebservice 文件夹移到那里

关于java - ResourceConfig 实例不包含 REST API 中的任何根资源类异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50086970/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com