使用Embedded Tomcat 和 Resteasy 来发布一个 Restful Service
2015-11-09 16:11
295 查看
需求是比较简便的发布,不需要配置文件。于是就像到了Embedded Tomcat。代码如下:
其中com.rum.restful.Config是Resteasy的Application配置类:
HelloResource是一个Restful Resource:
然后就可以通过http://SERVER:8080/t/services/trace来访问这个Resource了。
什么web.xml 都不需要了,呵呵
public class TomcatLauncher { public static void main(String[] args) throws Exception { Path path = Files.createTempDirectory("webapps"); Tomcat tomcat = new Tomcat(); // 添加一个webapp,路径是/t Context ctx = tomcat.addWebapp("/t", new File(".").getAbsolutePath()); //Resteasy的Listener ctx.addApplicationListener("org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap"); //各个Resource的配置类 ctx.addParameter("javax.ws.rs.core.Application", "com.rum.restful.Config"); //路径配置,一般和下面的Servlet Mapping那里的一致 ctx.addParameter("resteasy.servlet.mapping.prefix", "/services"); //在webapp /t下面添加名字为Resteasy的Servlet tomcat.addServlet("/t", "Resteasy", new HttpServletDispatcher()); //将所有/services下面的请求交给ResteasyServlet处理 ctx.addServletMapping("/services/*", "Resteasy"); // Tomcat Native / APR . 需要tc-native1.dll // 不是必须 StandardServer server = (StandardServer)tomcat.getServer(); AprLifecycleListener listener = new AprLifecycleListener(); server.addLifecycleListener(listener); tomcat.setPort(8080); // 端口 tomcat.start(); tomcat.getServer().await(); } }
其中com.rum.restful.Config是Resteasy的Application配置类:
public class Config extends Application { HashSet<Object> singletons = new HashSet<Object>(); public Config() { singletons.add(new HelloResource()); } @Override public Set<Class<?>> getClasses() { HashSet<Class<?>> set = new HashSet<Class<?>>(); return set; } @Override public Set<Object> getSingletons() { return singletons; } }
HelloResource是一个Restful Resource:
@Path("trace") public class HelloResource { @GET @Produces("text/plain") public String toString(@QueryParam("id") String id) { return Thread.currentThread().getName() + "hello, world " + id; } }
然后就可以通过http://SERVER:8080/t/services/trace来访问这个Resource了。
什么web.xml 都不需要了,呵呵
相关文章推荐
- 《How Tomcat Works》学习笔记(二)
- Tomcat的安装与在myeclips中的配置
- 【转】Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- 一台电脑同时运行多个tomcat配置方法 (转)
- [Windows Server 2012] Tomcat安装方法
- jetty、tomcat启动发生异常 java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl
- 模块化架构之tomcat的jsp加载处理
- Tomcat数据源
- Windows下Tomcat配置
- install plugins, such as spring (STS), maven, tomcat, etc.
- tomcat启动闪退的原因之一
- tomcat下CORS(跨域资源共享) 的配置
- Tomcat的跨区域访问问题
- CentOS 6.7 配置JSP运行环境之tomcat
- 《How Tomcat Works》学习笔记(一)
- 一个服务器多个Tomcat问题
- Tomcat启动内存设置
- MyEclipse的tomcat端口号的修改
- Tomcat热部署
- Tomcat下work文件夹的作用