在应用中嵌入tomcat-编程开发技术

在应用中嵌入tomcat-编程开发技术

ID:30802243

大小:83.06 KB

页数:7页

时间:2019-01-03

在应用中嵌入tomcat-编程开发技术_第1页
在应用中嵌入tomcat-编程开发技术_第2页
在应用中嵌入tomcat-编程开发技术_第3页
在应用中嵌入tomcat-编程开发技术_第4页
在应用中嵌入tomcat-编程开发技术_第5页
资源描述:

《在应用中嵌入tomcat-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在应用中嵌入Tomcat-编程开发技术在应用中嵌入Tomcat木文由ImportNew・飘扬叶翻译自penguindreamso欢迎加入翻译小组。转载请见文末要求。很多Javaweb应用和服务,包括开源的和商业化的(比如Alfresco,iRisc,Confluence等),都倾向于将ApacheTomcatServlet引擎整个嵌入到他们的分发包中。Atlatisan公司甚至只支持他们自己提供的嵌入式Tomcat包,不再提供WAR/EAR形式的分发包。这些安装包包含了整个Tomcat引擎和配置文件,看起來确实冇点大材小用o在犬多数配置中,默认的配置文

2、件英至从來不会变动O真的有办法可以在代码中启动Tomcat并且只需要tomcat的jar文件作为依赖么?在下而的教程屮,我们将会对Jetty(Jetty是一个为此目的而设计的一种嵌入式servlet引擎)进行测试,同时还会展示如何将Jetty迁移到Tomcat。我开始研究嵌入式Tomcat是因为BigSense项目,该项目是一个开源web服务,用于模拟传感器网络。我的口的是可以将其作为一个标准的Linux软件包进行分发,这样就可以作为一个服务启动,而不用依赖于Tomcat软件包。下面的例了使用的是Scala语言,BigSense项目用的也是这种开发语言

3、,但是你也可以轻松地将所有源码和概念转换为Java语言。首先,创建一个trait(类似于Java中的接口),里面包含两个简单的功能,用于启动和停止web服务器。端口号可以从配置文件中获取。这是我的实现中唯一可配置的了,但是你也可以对contextpath添加配置。packageio.bigsense,server/***Createdbysumiton4/28/14.*/traitServerTrait{lazyvalhttpPort二try{BigScnscScrvcr・config・options("httpPort")・tolnt}catch{c

4、asee:NumberFormatException二>Exit.invalidHttpPort0//makescompilerhappydefstartServer()defstopServer()下面是我使用Scala对Jetty的实现。大部分是直接从Jetty的官方文档中摘出来的。所有的静态资源(图片,CSS和javascript脚本)都被直接打包到了jar文件中,可以作为类路径的资源进行访问。如果使用构建工具,如SBT,Gradel或者Maven,可以将这些文件放到项目的src/main/resources目录下。Jetty的We

5、bAppContext允许调用setResourceBase來使用项目的静态资源。这个例子还展示了如何使用给定的Context路径来添加一个Servlet(在这个例子中,只有一个servlet,匹配根目录,名字为MasterServlet)。还可以看到一个EvcntListcncr的例子oweb.xml中的大部分标准配置在Jetty中都可以使用代码进行设置。packageio.bigsense,serverimportorg.Eclipse,jetty.server.Serverimportorg.eclipse,jetty.server.Scrver

6、Cormcctorimportorg.eclipse.jetty,server,handler.DefaultHandlerimportorg.eclipse,jetty,server,handler.Hand1erCo11ectionimportorg.eclipse,jetty,servlet.ServletContextHandlerimportorg.eclipse,jetty,webapp.WebAppContextimportio.bigscnsc.scrvlet.{DBUpdatcListcncr,MastcrScrvlet}classJ

7、ettyServerextendsServerTrait{valserver=newServer()valconnector二newScrverConncctor(server)connector.setPort(httpPort)server.setConnectors(Array(connector))valcontext=newServletContextHandler()contcxt.sctContcxtPath(BigScnscScrvcr.wcbRoot)context.addServlet(newMasterServlet()•getC

8、lass,〃/*〃)context.addEventListener(newDBUpdateL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。