RESTEasy:JAX-RS restful webservices 示例
2016-04-27 19:14
393 查看
纯web版本
pom添加依赖:<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.11.Final</version>
</dependency>
</dependencies>web.xml添加servlet定义
<servlet>
<servlet-name>resteasy-servlet</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>test.MyRESTEasyApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
JAX-RS定义
package test;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
public class MyRESTEasyApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
public MyRESTEasyApplication() { singletons.add(new HelloWorldRestService()); }
@Override
public Set<Object> getSingletons() { return singletons; }
}
package test; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/hello") public class HelloWorldRestService { @GET public Response defaultResponse() { return Response.status(404).entity("404: Default Response ....").build(); } @GET @Path("/{param}") public Response getName(@PathParam("param") String name) { String result = "RESTEasy Hello World : " + name; return Response.status(200).entity(result).build(); } }
web Guice集成版本
pom添加依赖:<dependencies> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-guice</artifactId> <version>3.0.16.Final</version> </dependency> </dependencies>web.xml添加内容:
<context-param> <param-name>resteasy.guice.modules</param-name> <param-value>guice.hello.MyGuiceModule</param-value> </context-param> <listener> <listener-class> org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener </listener-class> </listener> <servlet> <servlet-name>Resteasy</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> </servlet> <servlet-mapping> <servlet-name>Resteasy</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
java代码:
package guice.hello; public interface Greeter { String greet(String name); }
package guice.hello; import javax.inject.Singleton; @Singleton public class DefaultGreeter implements Greeter { public String greet(String name) { System.out.println(this); return "Hello " + name; } }
package guice.hello; import com.google.inject.Binder; import com.google.inject.Module; // TODO: 可参考 core 模块中的例子:com.conquer.comutils.core.guice.MyGuiceModule public class MyGuiceModule implements Module { public void configure(final Binder binder) { binder.bind(MyResource.class); binder.bind(Greeter.class).to(DefaultGreeter.class) // 使用 javax.inject.Singleton() 标注 实现类 实现单例 // .in(com.google.inject.Scopes.SINGLETON)// 这里设置单例,默认不是单例的而是每次创建 ; } }
package guice.hello; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @Path("hello") public class MyResource { private final Greeter greeter; @Inject public MyResource(final Greeter greeter) { this.greeter = greeter; } @GET @Path("{name}") public String hello(@PathParam("name") final String name) { return greeter.greet(name); } }
javase版本
RESTEasy可以通过javase程序main方法直接运行服务,生产环境下一般不这么使用,SpringBoot也有类似的用法,不多说了。相关文章推荐
- spring boot 使用profile来分区配置
- Mongoose(一):为什么选择Mongoose
- 【Unity】使用C#中的委托类型实现代理设计模式
- java利用axis2调用.net写的webservice,传递自定义的实体类参数
- matlab 基础 —— 输出相关信息(pause、fprintf)
- JQUERY 学习笔记(一)
- zookeeper安装与配置
- centos6.5 lamp搭建注意
- centos6.5 lamp搭建注意
- mysql-proxy源码安装及配置mysql读写分离
- poj 1469
- 通过MATLAB对从串口采集上来的一组数据进行频谱分析
- 利用dwarfdump命令和dsym文件链接binary image,查看crash log中
- MyEclipse集成maven环境
- h.264并行解码算法分析
- 基线 css
- 软件工程---在此基础上,进行软件的改进
- Java类权限
- 我的博客开篇啦
- centos6.5 lamp搭建注意