您的位置:首页 > 其它

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也有类似的用法,不多说了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: