如何idea 配置jetty服务器使外网可以访问服务器

jetty服务器的研究
以下文档是对jetty7.6.X进行的分析
1)https://benni82.iteye.com/blog/844922 & &----分析start.ini的用途
& & 在命令行运行java -jar start.jar,jetty程序首先会看你的是否配置了JETTY_HOME系统变量如果配置了,将会其下的找start.ini文件,如果没有
& & 就会在当前执行目录下找start.ini文件,找到了会根据此文件的配置,加载具体内容;其实start.ini中的内容可以直接写在命令行中,写在这个文件
& & 中便于统一管理调用
2)如何禁掉jetty的http协议,只开启https协议
& &修改start.ini
& & & &将etc/jetty.xml给注释掉;并开启etc/jetty-ssl.xml
& & & &但是只开启jetty-ssl.xml是无法启动jetty的, 需要将jetty.xml中的一些内容copy到jetty-ssl.xml中;具体内容如下:
& & &Set name=&handler&&
& & & &New id=&Handlers& class=&org.eclipse.jetty.server.handler.HandlerCollection&&
& & & & &Set name=&handlers&&
& & & & &&Array type=&org.eclipse.jetty.server.Handler&&
& & & & & &&Item&
& & & & & & &&New id=&Contexts& class=&org.eclipse.jetty.server.handler.ContextHandlerCollection&/&
& & & & & &&/Item&
& & & & & &&Item&
& & & & & & &&New id=&DefaultHandler& class=&org.eclipse.jetty.server.handler.DefaultHandler&/&
& & & & & &&/Item&
& & & & &&/Array&
& & & & &/Set&
& & & &/New&
& & &/Set&
& & &!-- =========================================================== --&
& & &!-- extra options & & & & & & & & & & & & & & & & & & & & & & & --&
& & &!-- =========================================================== --&
& & &Set name=&stopAtShutdown&&true&/Set&
& & &Set name=&sendServerVersion&&true&/Set&
& & &Set name=&sendDateHeader&&true&/Set&
& & &Set name=&gracefulShutdown&&1000&/Set&
& & &Set name=&dumpAfterStart&&false&/Set&
& & &Set name=&dumpBeforeStop&&false&/Set&
& &其实就是去掉http协议对应的连接群,之所以需要添加这些内容,这与jetty的架构有关
& & 一个jetty包含一个server,server下必须有handler,和Contexts
3)jetty的原理与架构
& & https://www.ibm.com/developerworks/cn/java/j-lo-jetty/
& & & & .)整个jetty的核心由Server和connector两个组件构成,整个Server组件是基于Handler容器
& & & & & & & &工作的,jetty中另外一个不可缺少的组件是Connector,它负责接收客户端的连接请求,并
& & & & & & & &将请求分配给一个处理队列去执行。
& & & &.) jetty组要提供了两种Handler类型,一种是 HandlerWrapper,它可以将一个 Handler 委托给另外一个类去执行,
& & & & & & 如我们要将一个 Handler 加到 Jetty 中,那么就必须将这个 Handler 委托给 Server 去调用。配合 ScopeHandler
& & & & & & &类我们可以拦截 Handler 的执行,在调用 Handler 之前或之后,可以做一些另外的事情,类似于 Tomcat 中的 Valve;
& & & & & & 另外一个 Handler 类型是 HandlerCollection,这个 Handler 类可以将多个 Handler 组装在一起,构成一个 Handler 链,方便我们做扩展。
4)Jetty 的启动过程
& & jetty 的入口是 Server 类,Server 类启动完成了,就代表 Jetty 能为你提供服务了。它到底能提供哪些服务,就要看 Server 类启动时都调
& &用了其它组件的 start 方法。从 Jetty 的配置文件我们可以发现,配置 Jetty 的过程就是将那些类配置到 Server 的过程.
& &因为 Jetty 中所有的组件都会继承 LifeCycle,所以 Server 的 start 方法调用就会调用所有已经注册到 Server 的组件,Server 启动其它组件的顺序是:
& &首先启动设置到 Server 的 Handler,通常这个 Handler 会有很多子 Handler,这些 Handler 将组成一个 Handler 链。Server 会依次启动这个链上的所有 Handler。
& &接着会启动注册在 Server 上 JMX 的 Mbean,让 Mbean 也一起工作起来,最后会启动 Connector,打开端口,接受客户端请求,启动逻辑非常简单
5)接收请求:
& &.)jetty创建一个队列线程池,用于处理每个建立连接产生的任务
& &.)创建 ServerSocket,用于准备接受客户端的 socket 请求
& &.)创建一个或多个监听线程,用来监听访问端口是否有连接进来
& 当建立连接的环境已经准备好了,就可以接受 HTTP 请求了,当 Acceptor 接受到 socket 连接后将转入对应的server进行处理
6) jetty的很多功能是可以在start.ini中添加对应的配置文件启动了,比如开启jetty-fileserver文件服务器的功能
& & 之所以可以这样,是通过加载不同的handler来实现的没有更多推荐了,
不良信息举报
举报内容:
Jetty 设置IP和localhost都可以访问的方法
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
如何通过外网访问自己的tomcat
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!I have configured
in my eclipse Mars and I can run the server using jetty start and stop goals. I can able to access the website using http://localhost:8080/myapp but not using local IP address(i.e., http://192.168.0.5:8080/myapp) from my own computer or other computers connected in the same network via LAN and Wi-Fi.
As mentioned as a solution in these posts,
I configured the server host to 0.0.0.0 from localhost to listen on all hosts. With this setting I can see on server start log,
INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
and it works only on http://localhost:8080 but it's not accessible from http://192.168.0.5:8080.
I also tried running that if the interface is accessible using the
as mentioned in
and I got,
Display name: NETGEAR WNA1000M N150 Wireless USB Micro Adapter
Name: wlan4
InetAddress: /192.168.0.5
I also tried turning off my Windows Firewall/antivirus but din't help. My jetty version is &jetty.version&9.3.0.M1&/jetty.version& and JDK 1.7. What could be the problem? Any help is appreciated.
解决方案 McAfee Endpoint Security was the culprit here. It was blocking the requests with IP addresses from my very own computer. Turned off the firewall inside the Antivirus and I was able to access the site with http://192.168.0.5:8080/mysite from the browser and other devices connected through the network.
本文地址: &
我已将,我可以使用jetty启动和停止目标来运行服务器。我可以使用 http:// localhost:8080 / myapp 访问该网站,但不能使用本地IP地址(即 http://192.168 .0.5:8080 / myapp )从我自己的电脑或通过LAN和Wi-Fi连接在同一网络中的其他计算机。
作为这些帖子中的解决方案,
我将服务器主机配置为 0.0.0.0 从 localhost 来监听所有主机。使用此设置,我可以在服务器启动日志中看到
INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
,它只适用于 http:// localhost:8080 但不能从 http://192.168.0.5:8080 访问。
我也尝试运行,如果该接口可以使用这个评论,我得到了,
显示名称:NETGEAR WNA1000M N150无线USB微型适配器名称:wlan4
InetAddress:/192.168.0.5
我也尝试关闭我的Windows防火墙/防病毒,但不帮助。我的码头版本是& jetty.version& 9.3.0.M1& /jetty.version& 和JDK 1.7。可能是什么问题呢?任何帮助都不胜感激。
McAfee Endpoint Security是这里的罪魁祸首。它正在阻止来自我自己的计算机的IP地址的请求。关闭防毒软体内的防火墙,我可以从浏览器和通过网络连接的其他设备访问网站,网址为 http://192.168.0.5:8080/mysite
本文地址: &
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注
与百万开发者在一起
(window.slotbydup = window.slotbydup || []).push({
id: '5828425',
container: s,
size: '300,250',
display: 'inlay-fix'
(window.slotbydup = window.slotbydup || []).push({
id: '5828430',
container: s,
size: '300,250',
display: 'inlay-fix'想用jetty作为服务器去部署jfinal做的一个项目,要怎么弄?
最近用jfinal做一个项目,据本人了解,如果用tomcat去部署的话要去掉jetty-server.jar这个包,据从名字上看出来应该就是jetty-server的运行所用到的包,但是有个疑问就是如果我想用jetty作为服务器要怎么弄呢?目前比较紧急,求各位大侠协助下在下,不胜受恩感激,临表涕零~~
java -classpath classpath&packagename.mainclass
应该是这样
& &不建议使用 jetty 做为服务器,据个人使用经验,jetty 服务经常挂掉,换上 tomcat 后便非常稳定,tomcat 配置非常容易,修改 TOMCAT_HOME/conf/server.xml,找到 &Host& 标记,添加子标记&&Context path=&& reloadable=&false& docBase=&/var/www/jfinal_com/webapp& /&,这里的关键点有两个:
& & & 1:永远不要将项目放在 TOMCAT_HOME/webapps 目录下面,因为如果server.xml 中再配置该项目后会将本项目加载两次,引发很多不解的问题
& & &2:项目的 context path 设置为 &&,免去很多不必要的麻烦,减少代码量
& &如果非要用 jetty,先去官网下载 jetty 解压后在 JETTY_HOME/contexts下面添加一个 xml 配置文件,主要配置参考如下:
&Configure class=&org.eclipse.jetty.webapp.WebAppContext&&
&Set name=&contextPath&&/&/Set&
&Set name=&resourceBase&&/alidata/www/jfinal_com&/Set&
&Set name=&extractWAR&&false&/Set&
&Set name=&copyWebDir&&false&/Set&
&Set name=&defaultsDescriptor&&&SystemProperty name=&jetty.home& default=&.&/&/etc/webdefault.xml&/Set&
&!-- virtual hosts --&
&Set name=&virtualHosts&&
&Array type=&String&&
&Item&www.jfinal.com&/Item&
&Set name=&sessionHandler&&
&New class=&org.eclipse.jetty.server.session.SessionHandler&&
&New class=&org.eclipse.jetty.server.session.HashSessionManager&&
&Set name=&storeDirectory&&/alidata/www/jetty_session/jfinal_com&/Set&
&/Configure&
& & 无论哪种用法,记得删掉 jetty-server-8.1.8.jar,这个仅用于开发
--- 共有 2 条评论 ---
: 现在直接放入jetty里面执行,还没出现过问题
回答的很详细
写个main执行下就可以了
public class Start {
public static void main(String[] args) {
JFinal.start(&WebRoot&, 80, &/demo&, 5);}

我要回帖

更多关于 jetty服务器配置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信