发表于: 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倒是对这方面了解加深






返回列表 返回列表
评论

    分享到