发表于: 2017-10-27 22:15:40
1 641
今天完成的任务
jetty使用插件启动(参考:http://www.cnblogs.com/garfieldcgf/p/5530306.html)
public class start {
public static void main(String[] args){
Server server =new Server(8080);
try{
server.start();
server.join();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
简单模板
jetty通过server启动
public Server() {
this.setServer(this);
}
public Server(int port) {
this.setServer(this);
Connector connector = new SelectChannelConnector();
connector.setPort(port);
this.setConnectors(new Connector[]{connector});
}
既可以在server中直接输入port获取端口号,也可以在后面另行添加端口
server.start();
启动
server.join();
然不是很能理解这个方法的作用
-------------------------------------------------------------------------------------------------------------------------------------------------
public static void tt() throws Exception {
Server server = new Server();// 创建jetty web容器
server.setStopAtShutdown(true);// 在退出程序是关闭服务
Connector connector = new SelectChannelConnector();// 创建一个连接器
connector.setHost("127.0.0.1");// ip地址
connector.setPort(8080);// 连接的端口号
server.addConnector(connector);// 添加连接
QueuedThreadPool threadPool = new QueuedThreadPool();
threadPool.setMaxThreads(3000);
server.setThreadPool(threadPool);
// 配置服务
WebAppContext context = new WebAppContext();// 创建服务上下文
context.setContextPath("");// 访问服务路径 http://{ip}:{port}/
context.setConfigurationDiscovered(true);
String baseDir = Thread.currentThread().getContextClassLoader()
.getResource("").getPath();
context.setDescriptor(baseDir + File.separator + "/WEB-INF/web.xml");// 指明服务描述文件,就是web.xml
// 指明服务描述文件,就是web.xml
context.setResourceBase(System.getProperty("user.dir")
+ "/src/main/webapp/");
server.setHandler(context);// 添加处理try {
server.start();// 开启服务
server.join();
}
}
一个大体的框架
前人的思路说的很明确
Server server = new Server();// 创建jetty web容器
server.setStopAtShutdown(true);// 在退出程序是关闭服务
Connector connector = new SelectChannelConnector();// 创建一个连接器
connector.setHost("127.0.0.1");// ip地址
connector.setPort(8080);// 连接的端口号
server.addConnector(connector);// 添加连接
声明地址和端口数
public void addConnector(Connector connector) {
this.setConnectors((Connector[])((Connector[])LazyList.addToArray(this.getConnectors(), connector, Connector.class)));
}
通过注入connector方法获得
QueuedThreadPool threadPool = new QueuedThreadPool();
threadPool.setMaxThreads(3000);
server.setThreadPool(threadPool);
// 配置服务
最大连接数
但是直接指向的源代码写的是
public void setMaxThreads(int maxThreads) {
this._maxThreads = maxThreads;
if (this._minThreads > this._maxThreads) {
this._minThreads = this._maxThreads;
}
}
还怕你最小连接数写的比最大连接数大了,给自动修改,还挺贴心的..
WebAppContext context = new WebAppContext();// 创建服务上下文
context.setContextPath("");// 访问服务路径 http://{ip}:{port}/
context.setConfigurationDiscovered(true);
String baseDir = Thread.currentThread().getContextClassLoader()
.getResource("").getPath();
context.setDescriptor(baseDir + File.separator + "/WEB-INF/web.xml");// 指明服务描述文件,就是web.xml
context.setResourceBase(System.getProperty("user.dir")
+ "/src/main/webapp/");// 指定服务的资源根路径,配置文件的相对路径与服务根路径有关
server.setHandler(context);// 添加处理
context.setConfigurationDiscovered(true);
实际默认就是true
读不懂这两句话
context.setDescriptor(baseDir + File.separator + "/WEB-INF/web.xml");// 指明服务描述文件,就是web.xml
context.setResourceBase(System.getProperty("user.dir")
+ "/src/main/webapp/");// 指定服务的资源根路径,配置文件的相对路径与服务根路径有关
只能说实际上对于一个web项目,中心配置还是在web.xml上
配置成功
-------------------------------------------------------------------------------------------------------------------------------------------------------------
老大说在linux不适合使用jetty做部署服务器
故而转用resin
8081为tomcat
8082为resin
部分链接使用直接地址
遇到的问题
收获
内嵌式的jetty适合在开发时候使用,通过java就可设置的配置也方便调整
但是jetty不适合在linux上配置
一般在linux上更适用于tomcat和resin
最近一直在写server.xml和.conf倒是对这方面了解加深
评论