- 浏览: 238805 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
潇洒小鸟2013:
确实有这个问题
c3p0存在严重bug -
jun1022509040:
http://download.csdn.net/detail ...
c3p0存在严重bug -
liang5233145:
1.7版本,有个close()方法,但是1.7之前没有关闭方法 ...
关闭URLClassLoader打开的jar包 -
ilomkdyhrnvbd:
性能测试之Apache性能调优观看地址:http://www. ...
apache性能调优 -
zxjlwt:
学习了。http://surenpi.com
jetty和tomcat中,war包解压缩的差别
jetty中文文档:www.jettycn.com
一个应用一个端口
A应用只能从A端口访问,B应用只能从B端口访问
要做到这一点的最有效的方法是创建两个org.eclipse.jetty.server.Server实例。还有另外一种效率较低的替代方案 。
服务器实例A有一个监听A端口的connector并部署A应用,服务器实例B有一个监听B端口的connector并部署B应用。例如:
我们希望A应用从8080端口访问,B应用通过SSL协议从8443端口访问。我们建立了2个服务器实例,每个实例的jetty.xml文件如下所示:
jettyA.xml
<Configure id="ServerA" class="org.eclipse.jetty.server.Server"> <!-- set up the port for ServerA --> <Set name="connectors"> <Array type="org.eclipse.jetty.server.Connector"> <Item> <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <Set name="port">8080</Set> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">10</Set> </New> </Item> </Array> </Set> <!-- set up a context provider for Server A --> <Call name="addLifeCycle"> <Arg> <New class="org.eclipse.jetty.deploy.providers.ContextProvider"> <Set name="contexts"><Ref id="Contexts"/></Set> <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contextsA</Set> <Set name="scanInterval">5</Set> </New> </Arg> </Call> </Configure>
jettyB.xml:
<Configure id="ServerB" class="org.eclipse.jetty.server.Server"> <!-- set up the port for ServerB --> <Set name="connectors"> <Array type="org.eclipse.jetty.server.Connector"> <Item> <New class="org.eclipse.jetty.server.ssl.SslSocketConnector"> <Set name="Port">8443</Set> <Set name="maxIdleTime">30000</Set> <Set name="Keystore"><SystemProperty name="jetty.home" default="." />/etc/keystore</Set> <Set name="Password">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set> <Set name="KeyPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set> </New> </Item> </Array> </Set> <!-- set up a context provider for ServerB --> <Call name="addLifeCycle"> <Arg> <New class="org.eclipse.jetty.deploy.providers.ContextProvider"> <Set name="contexts"><Ref id="Contexts"/></Set> <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contextsB</Set> <Set name="scanInterval">5</Set> </New> </Arg> </Call> </Configure>
现在我们需要配置两个context文件,一个描述需要部署到ServerA上的A应用,另一个描述需要部署到ServerB上的B应用。然后,我们把这些文件分别放到$JETTY_HOME/contextsA或$JETTY_HOME/contextsB中。
contextA.xml
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="war"><SystemProperty name="jetty.home"/>/webapps/A</Set> <Set name="contextPath">/webappA</Set> ... </Configure>
contextB.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="war"><SystemProperty name="jetty.home"/>/webapps/B</Set> <Set name="contextPath">/webappB</Set> ... </Configure>
你将在同一个JVM中运行2个服务器实例,只需提供2个xml配置文件:
java -jar start.jar jettyA.xml jettyB.xml
当然,你也可以启动2个独立Jetty实例,一个实例使用jettyA.xml,另一个实例使用jettyB.xml。但是,在同一JVM中运行2个服务器通常是更有效的。
替代方案
还有另一种方法,也可以实现上述相同的结果,但它的效率稍微差一些。这需要设置web应用的connector列表,只有列表中的connector发送过来的请求才会被处理。相对于上面描述的方法,这是一个效率较低的解决方案,因为该请求提交给每一个web应用,web应用必须决定是否接收并处理这个请求。在第一个解决方案,请求只会传给唯一的一个web应用。在此配置中,你只需要一个服务器实例。你需要为每个connector定义唯一的名称,然后给每个web应用指派connector名称列表,这样web应用就可以响应指定connector发来的请求了。
以下代码展示了如何配置connector列表:
jetty.xml:
<Configure class="org.eclipse.jetty.server.Server"> <!-- set up both connectors --> <Set name="connectors"> <Array type="org.eclipse.jetty.server.Connector"> <Item> <New id="connA" class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <Set name="port">8080</Set> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">1</Set> <Set name="name">connA</Set> </New> </Item> <Item> <New id="connB" class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <Set name="port">9090</Set> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">1</Set> <Set name="name">connB</Set> </New> </Item> </Array> </Set> <!-- set up a context provider --> <Call name="addLifeCycle"> <Arg> <New class="org.eclipse.jetty.deploy.providers.ContextProvider"> <Set name="contexts"><Ref id="Contexts"/></Set> <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set> <Set name="scanInterval">5</Set> </New> </Arg> </Call> </Configure>
contextA.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="war"><SystemProperty name="jetty.home"/>/webapps/A</Set> <Set name="contextPath">/webappA</Set> <Set name="connectorNames"> <Array type="String"> <Item>connA</Item> </Array> </Set> ... </Configure>
contextB.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="war"><SystemProperty name="jetty.home"/>/webapps/B</Set> <Set name="contextPath"/webappB</Set> <Set name="connectorNames"> <Array type="String"> <Item>connB</Item> </Array> </Set> </Configure>
现在像往常一样启动jetty(如果你的服务器配置文件叫jetty.xml,可以从命令行省略它):
java -jar start.jar
评论
jetty目录中的start.ini中默认引入了很多配置文件:etc/jetty.xml, etc/jetty-deploy.xml 等等
发表评论
-
jetty ajp实现分析
2014-10-12 21:09 927Ajp13Parser用于解析web服务器传过来的输入流, ... -
访问JSP页面时报java.err.nojdk错误
2012-08-21 10:08 7419案件JDK6及以上版本时,则在Jetty中访问JSP页面的时候 ... -
jetty和ajaxanywhere有冲突
2012-01-12 16:38 1691有同事反映jetty下部署的应用程序有问题,而这个应用部署在t ... -
jetty处理get请求支持中文url
2011-12-27 15:52 3575URL实例是: http://localhost:8080/ ... -
jetty wiki未翻译的文章列表
2011-09-04 20:06 1424文章地址 翻译者 http://wiki.ec ... -
jetty-配置JMX
2011-09-02 14:26 11375jetty中文文档:www.jettycn. ... -
jetty-如何重定向或移动context
2011-08-26 11:09 4112jetty中文文档:www.jettycn.com ... -
jetty-如何序列化会话
2011-08-25 13:35 2003jetty中文文档:www.jettycn.com ... -
jetty-如何配置会话ID
2011-08-24 13:17 8128jetty中文文档:www.jettycn.com ... -
jetty-如何配置虚拟主机
2011-08-18 18:27 15391jetty中文文档:www.jettycn.com ... -
jetty-如何配置连接器
2011-08-02 14:36 1533jetty中文文档:www.jettycn.com ... -
jetty7中文文档
2011-06-22 23:06 9364jetty是一个开源的java servlet容器,功能类似于 ... -
jetty中的JNDI实现分析
2011-05-03 19:11 2319本文主要探讨jetty中的JN ... -
jetty存在session不一致问题
2011-04-19 13:09 4291jetty在集群环境中使用时,浏览器中的sessionId和后 ... -
jetty-plus.xml功能分析
2011-03-10 10:26 3411版本:jetty 7.3.0 一:org.eclips ... -
学习jetty-WebAppContext
2011-02-25 15:21 4829一个WebAppContext对象代表一个web应用程序,可以 ... -
学习jetty
2011-01-24 18:16 14281 jetty-web.xml 是和指定web应 ...
相关推荐
Jetty 9.2.29.v20191105是该版本的一个特定发布,这个版本包含了对稳定性和安全性的改进以及一些bug修复。 在Jetty 9.2系列中,有几个重要的知识点值得我们了解: 1. **Servlet 3.1支持**:Jetty 9.2.x版本支持...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者在Java应用程序中直接启动HTTP...通过上述步骤,你可以快速搭建一个简单的Jetty服务,指定特定端口提供TCP服务,为你的测试或其他目的提供便利。
Jetty的版本4.2.24rc0是该软件的一个历史版本,可能包含了修复的一些错误或者特定功能的改进。在本文中,我们将深入探讨Jetty的核心特性、工作原理以及如何使用这个版本。 一、Jetty简介 Jetty由Mortbay ...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发、测试以及部署Web应用程序。本教程将深入探讨Jetty的核心概念、安装配置、实用特性以及开发应用,帮助你全面理解并掌握Jetty。 1. **...
Jetty是一个开源的、轻量级的Java Web服务器和HTTP协议栈,它广泛用于开发、测试和部署Web应用程序。这篇博客文章(虽然描述是空的,但我们可以通过博文链接深入探究)可能涵盖了如何在Jetty环境下进行单元测试或...
【Tomcat7-src】Tomcat 7是Tomcat的一个特定版本,其源代码包含了服务器的所有组件和模块。分析Tomcat 7的源代码可以帮助我们理解其在处理多线程、容器管理、安全策略等方面的设计决策。例如,`Catalina`是Tomcat的...
如何让一个应用响应一个特定端口 使用JNDI 使用JNDI 在JNDI中配置数据源(DataSource) 内嵌Jetty服务器 内嵌Jetty教程 内嵌Jetty的HelloWorld教程 内嵌Jetty视频 优化Jetty 如何配置垃圾收集 如何配置以支持高负载 ...
在本示例中,我们将探讨如何在OSGi环境下配置Jetty 9.3.10,创建一个注册Servlet的工程,并进行Jetty的性能优化。 首先,我们需要准备OSGi运行时环境。常见的OSGi容器有Apache Felix、Equinox等。这里我们选择一个...
这个版本是Jetty 6系列的一个具体发行版,主要服务于Java应用程序,尤其是那些基于Servlet API的应用。"jetty6.1.6-1"的描述指出这是一部分,但不包含"lib"目录,这意味着提供的压缩包可能不包括所有依赖库,开发者...
i-jetty开源项目就是这样一个为Android平台定制的嵌入式HTTP服务器,它基于Java的Jetty服务器,提供了在Android应用中实现本地HTTP服务的功能。本文将对这个项目进行深度解析,以帮助开发者更好地理解和利用这个工具...
在Web应用开发中,跨域问题是一个常见的挑战,特别是在利用Ajax进行异步数据交互时。由于浏览器的安全策略,不同源(域名、协议或端口)之间的请求会被阻止,除非服务器允许这些跨域请求。在GeoServer的环境中,当...
- 创建Server对象:在Spring配置文件中定义一个`org.eclipse.jetty.server.Server`bean,设置端口和其他服务器属性。 - 添加Servlet容器:创建`org.eclipse.jetty.servlet.ServletContextHandler`对象,并设置其上...
【标题】"simple-jetty-helloworld" 是一个基于Java的项目,主要目的是向开发者展示如何使用Jetty服务器来创建一个简单的“Hello, World”应用程序。Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器,它允许...
6. 确认路径无误后,输入一个描述性的名称,例如“Run-Jetty-Run Offline”。 7. 回到“Install New Software”窗口,你应该能看到新添加的插件源。勾选列出的插件,然后点击“Next”。 8. 阅读并接受许可证协议,...
标题中的“jrtty.zip webservice”表明这是一个与Jetty服务器和Web服务相关的资源包。Jetty是一款轻量级、高性能的开源Java Web服务器和HTTP协议栈,它被广泛用于开发和部署Web应用程序,包括RESTful Web服务。在这...
- **本地数据共享**:在多个应用之间共享数据,无需通过网络进行传输。 - **模拟API服务器**:在没有网络或者网络不稳定时,本地模拟API接口供应用调用。 - **离线模式**:为用户提供离线浏览或操作的功能。 - *...
- **HttpHandler**:具体负责处理HTTP请求与响应,可以是一个具体的Servlet或静态资源处理器。 - **HttpListener**:监听特定端口上的HTTP请求,并将这些请求传递给`HttpServer`处理。 #### 三、HttpServer与配置...
Jetty是一个轻量级的Java Web容器,它可以快速地运行Servlet和Web应用。配置Jetty主要涉及修改jetty.xml或相关的context.xml文件,比如设置端口、添加部署、调整线程池参数等。例如,在jetty-context.xml文件中,你...
- 首先,你需要在Eclipse中创建一个新的Dynamic Web Project,这将生成一个包含基本Web应用结构的项目,如WEB-INF目录和web.xml文件。 - 在项目属性中,可以配置Jetty插件,使其关联到当前项目,这样就可以在...
接下来,创建一个简单的Jetty服务器,监听特定端口并处理HTTP请求。以下是一个基础的Jetty服务器示例: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler...