Wildfly9下resteasy的简单应用实例
通过下面的实例可以看出,resteasy 3.0.11之后创建一个restful应用是多么的简单!
环境准备
本案例用到的工具及其版本号如下:
- wildfly 9.0.2,其中默认自带的resteasy版本是3.0.11,本案例没有升级resteasy的版本。
- eclipse Mars,安装了JBoss Tools 4.0。
创建项目
在Eclipse中通过new->Web->Dynamic Web Project创建新项目helloRest:
注意在最后一步要选中创建web.xml文件:
编写web.xml
打开创建的文件,在WebContent/WEB-INF目录找到web.xml文件。由于wildfly9已经紧密集成了resteasy,不再需要在web.xml中配置任何内容了!
如果熟悉JSF,Servlet技术,会记得一般需要在web.xml中配置哪个servlet负责响应和分发用户的请求,比如以前版本的wildfly要使用resteasy的配置选项如下:
<servlet> <servlet-name>Resteasy</servlet-name> <servlet-class> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher </servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>sample.HelloWorldApplication</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Resteasy</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
但是请记住,wildfly 9之后,再使用resteasy就不需要这个选项了,道理参见下面代码的@ApplicationPath注解。
编写服务器端接口
首先需要编写一个程序的入口,即编写一个带有@ApplicationPath注解的类,这个类是Application的子类,通过ApplicationPath注解告诉wildfly整个应用程序的入口url是什么。目前这个类可以是空的。 注意,Application类的全称是javax.ws.rs.core.Application,不要选错了。
package helloRest; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/rest") public class MyApplication extends Application { }
接着定义一个服务接口如下:
package helloRest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; @Path("hello") public interface HelloService { @GET @Path("{name}") public String sayHello(@QueryParam("name") String name); }
编写一个HelloService的实现类如下:
package helloRest; public class Hello implements HelloService { @Override public String sayHello(String name) { // TODO Auto-generated method stub return "hello " + name ; } }
测试一下
首先build project(不要忘记了这一步,尤其是关闭了Build Automatically),然后在servers view中添加wildfly9(如果已经添加了wildfly9跳过此步):
然后启动wildfly,打开浏览器访问http://localhost:8080/restHello/rest/hello/sayHello?name=subaochen,见证奇迹的时刻:
尝试改变?name=后面的字符串看看效果如何?