Поскольку я не нашел хорошего учебника для RestEasy + WildFly, я следую этому учебнику (https://robferguson.org/blog/2016/12/02/getting-started-with-resteasy/)) и создал простой пример Hello World для проекта JAX-RS с использованием Resteasy 3.7.0.Final +Wildfly 13 + Java 8 + maven. Этот учебник на самом деле использует Jetty Http-сервер.
Вот класс ресурсов:
@Path("/hello")
@Produces(MediaType.TEXT_PLAIN)
public class MessageResource {
@GET
@Path("/{param}")
public Response printMessage(@PathParam("param") String msg) {
String result = "Hello " + msg + "!";
return Response.status(200).entity(result).build();
}
}
И класс, расширяющий javax.ws.rs.core.Application
- (все остальные ресурсы)будет автоматически регистрироваться этим классом)
@ApplicationPath("")
public class HelloWorldApplication extends Application {
public HelloWorldApplication() {}
@Override
public Set<Object> getSingletons() {
HashSet<Object> set = new HashSet<Object>();
set.add(new MessageResource());
return set;
}
}
Кроме того, я добавил jboss-deploy-structure.xml (который не является частью учебного пособия) в WEB-INF, чтобы исключить следующие модули:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="resteasy" />
</exclude-subsystems>
<exclusions>
<module name="javaee.api" />
<module name="javax.ws.rs.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs" />
</exclusions>
<local-last value="true" />
</deployment>
</jboss-deployment-structure>
Полагаю, это исключает модули рестайзи, связанные с Wildfly (исправьте меня, если я ошибаюсь), поскольку я использую последнюю версию RestEasy в pom.xml:
<properties>
<resteasy.version>3.7.0.Final</resteasy.version>
</properties>
В конфигурации maven я удалил плагин jetty, а остальная часть в pom.xml такая же, как в учебном примере, за исключением версии RestEasy. https://github.com/Robinyo/resteasy/blob/master/examples/helloworld/pom.xml
Но когда я пытаюсь запустить пример сURLhttp://localhost:8080/hello/World, Я получаю 404 - Not Found
ошибку.
Отсутствует ли какая-либо часть в конфигурации maven или конфигурации wildfly?