由于我没有找到任何适用于RestEasy + WildFly的好教程,因此,我正在关注此(https://robferguson.org/blog/2016/12/02/getting-started-with-resteasy/)教程,并使用Resteasy 3.7.0创建了一个简单的JAX-RS项目的Hello World示例。 Wildfly 13 + Java 8 + Maven。本教程实际上是使用Jetty Http服务器。
这是Resource类:
@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
的类-(所有Rest资源将由该类自动注册)
@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;
}
}
此外,我在WEB-INF下添加了jboss-deployment-structure.xml(不是本教程的一部分),以排除以下模块:
<?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中使用了RestEasy的最新版本:
<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
但是当我尝试使用URL http://localhost:8080/hello/World运行示例时,出现404 - Not Found
错误。
maven配置或wildfly配置中是否缺少任何部分?