Jetty嵌入式web的war的发布方法[张振华-Jack]
来源:互联网 发布:社交网络的定义 编辑:程序博客网 时间:2024/06/06 04:30
一:直接war的发布启动方式:
1)Runner的类内容如下:注意一定要在根目录,但是个人觉得不一定
import java.io.File;
import java.net.URL;
import java.security.ProtectionDomain;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.NetworkTrafficSelectChannelConnector;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.webapp.WebAppContext;
public class Runner {
public static void main(String[] args) throws Exception {
String jettyVersion = Server. getVersion();
final int port = Integer.parseInt (System.getProperty( "port", "8088"));
ProtectionDomain protectionDomain = Runner.class.getProtectionDomain();
URL location = protectionDomain.getCodeSource().getLocation();
String warFile = location.toExternalForm();
String currentDir = new File(location.getPath()).getParent();
File workDir = new File(currentDir, "work" );
System. out.println("##########jettyVersion=" + jettyVersion);
System. out.println("##########port=" + port);
System. out.println("##########currentDir=" + currentDir);
System. out.println("##########workDir=" + workDir);
System. out.println("##########warFile=" + warFile);
WebAppContext webapp = new WebAppContext();
webapp.setContextPath( "/");
// webapp.setResourceBase(".");
webapp.setTempDirectory(workDir);
// webapp.setClassLoader(Thread.currentThread().getContextClassLoader());
webapp.setWar(warFile);
NetworkTrafficSelectChannelConnector connector = new NetworkTrafficSelectChannelConnector();
connector.setPort(port);
connector.setMaxIdleTime(60000);
connector.setRequestHeaderSize(10240);
connector.setSoLingerTime(-1);
connector.setThreadPool( new QueuedThreadPool(1024));
Server server = new Server();
server.addConnector(connector);
server.setHandler(webapp);
server.start();
server.join();
}
}
2)运行方式:
1:java -jar tdt-web-0.0.1-SNAPSHOT-fat.war
2:mvn jetty:run;
3:直接用运行上面的类的main方法,但是要注意war的路径和lib的路径;
3)需要注意的是将所有依赖的jar加进去;
<dependency>
<groupId> org.eclipse.jetty.orbit</groupId >
<artifactId> javax.servlet</artifactId >
<version> 3.0.0.v201112011016</version >
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> org.eclipse.jetty</groupId >
<artifactId> jetty-server </artifactId>
<version> ${jetty.version}</version >
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> org.eclipse.jetty</groupId >
<artifactId> jetty-webapp</artifactId>
<version> ${jetty.version}</version >
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> org.eclipse.jetty.orbit</groupId >
<artifactId> org.apache.jasper.glassfish</artifactId >
<version> 2.2.2.v201112011158</version >
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> org.eclipse.jetty.orbit</groupId >
<artifactId> javax.el</ artifactId>
<version> 2.2.0.v201108011116</version >
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> javax.servlet</groupId >
<artifactId> servlet-api</artifactId>
<version> 2.5</ version>
<scope> provided</ scope>
</dependency>
4)war的打包方式如下:
<!-- jetty -->
<plugin>
<groupId> org.mortbay.jetty</groupId >
<artifactId> jetty-maven-plugin</artifactId >
<configuration>
<webAppSourceDirectory> ${basedir}/src/webapp</webAppSourceDirectory >
<webAppConfig>
<contextPath> /</ contextPath>
<descriptor> ${basedir}/src/webapp/WEB-INF/web.xml</descriptor >
</webAppConfig>
<classesDirectory> ${basedir}/target/classes</classesDirectory >
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector" >
<port> 8088</ port>
<maxIdleTime> 60000</ maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
<!-- insert jetty class(compiler) -->
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-war-plugin</artifactId>
<version> 2.3</ version>
<configuration>
<archive>
<manifest>
<mainClass> Runner</ mainClass>
<!-- <addClasspath>true</addClasspath> -->
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-antrun-plugin</artifactId >
<version> 1.7</ version>
<executions>
<execution>
<id> main-class-placement</id >
<phase> prepare-package</phase >
<configuration>
<target>
<move
todir= "${project.build.directory}/${project.artifactId}-${project.version}-${package.environment}/" >
<fileset dir="${project.build.directory}/classes/" >
<include name="Runner.class" />
</fileset>
</move>
</target>
</configuration>
<goals>
<goal> run</ goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-dependency-plugin</artifactId>
<version> 2.5.1</ version>
<executions>
<execution>
<id> jetty-classpath</id>
<phase> prepare-package</phase >
<goals>
<goal> unpack-dependencies</goal >
</goals>
<configuration>
<includeGroupIds> org.eclipse.jetty, org.eclipse.jetty.orbit</ includeGroupIds>
<includeScope> provided</ includeScope>
<!-- remove some files in order to decrease size -->
<excludes> *, about_files/*, META-INF/*</excludes>
<outputDirectory> ${project.build.directory}/${project.artifactId}-${project.version}-${package.environment}/ </outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
5)打包好的war里面内容如下:
0 0
- Jetty嵌入式web的war的发布方法[张振华-Jack]
- Jetty嵌入式web的war的发布方法
- jetty嵌入式发布XFire实现的webservice
- main方法启动jetty java嵌入式web服务器jetty的使用
- JETTY嵌入式Web容器的开发
- 使用jetty作为嵌入式web容器(部署war文件)
- 使用jetty作为嵌入式web容器(部署war文件)
- 嵌入式jetty的使用
- java 嵌入式的Web服务器jetty使用例子
- JAVA里使用Jetty作为轻量级嵌入式的Web容器
- Jetty学习【一】 Jetty的嵌入式使用
- web 应用打包war包的方法
- [WEB]Jetty的结构
- Jetty 嵌入式Web
- Java Web 学习笔记之八:嵌入式web服务器Jetty的基本使用
- jetty的配置方法
- eclipse 使用 jetty 开发web的集成方法
- 将Web应用打包成war文件的方法总结
- 算法第四版习题
- leetcode Unique Binary Search Trees II
- sicily1017 Rate of Return
- UVA 188
- NDK环境搭建
- Jetty嵌入式web的war的发布方法[张振华-Jack]
- 应用程序配置文件
- LDD3 short程序编译出错之修改
- Redis系列-配置文件小结
- mysql---源码安装
- OpenCV3.0学习(一)——OpenCV3.0 ALPHA在WIN8+VS2012环境下的配置
- 管理处理器的亲和性(affinity)
- 博弈论--取石子游戏
- 1078. Hashing (25)