Я создал 3 простых файла на Java и использовал команду mvn clean package wildfly: deploy для его запуска.Все успешно развернуто (по крайней мере, так написано в консоли).Однако, когда я перехожу к
http://localhost:8080/lab-rest-api/library/book
, я получаю ошибку 404.Мой проект находится в модуле lab-rest-api (это просто часть проекта, другие модули предназначены для использования в сети - ejb, ear и т. Д.)
Я сделал веб-сервис и просто потреблял веб, и это сработалохорошо.Однако REST API не работает.
Вот мой pom.xml:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.6.3.Final</version>
<scope>provided</scope>
</dependency>
Мое приложение расширения:
@ApplicationPath("/")
public class RESTMain extends Application {
public RESTMain() {
System.out.println("whatever");
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(ServicesInterface.class);
return classes;
}
}
И мой сервис:
@Path("/library")
@Consumes({"application/json"})
@Produces({"application/json"})
public class ServicesInterface {
Book booky = new Book();
@GET
@Path("/book/{title}")
public Book getBook(@PathParam("title") String title){
return booky;
}
@PUT
@Path("/book/{title}")
public Book addBook(@PathParam("title") String title, @QueryParam("author") String author){
return booky;
}
@POST
@Path("/book/{title}")
public Book updateBook(@PathParam("title") String title, String author){
return booky;
}
@DELETE
@Path("/book/{title}")
public Book removeBook(@PathParam("title") String title){
return booky;
}
}
"Книга" - это простой класс с двумя строками (автор и заголовок) и получателями и установщиками для него.