Jetty嵌入式web的war的发布方法

一:直接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里面内容如下:

时间: 2024-10-11 13:24:20

Jetty嵌入式web的war的发布方法的相关文章

Python web在IIS上发布方法和原理

Python web应用想要发布使用iis发布有两种方式,这篇文章就为大家介绍一下这两种方式的具体实现: 1.配置HttpPlatform程序 HttpPlatform 模块将套接字连接直接传递到独立的 Python 进程. 借助此传递可根据需要运行任何 Web 服务器,但需要用于运行本地 Web 服务器的启动脚本. 在 web.config 的 <httpPlatform> 元素中指定脚本,其中 processPath 属性指向站点扩展的 Python 解释器,arguments 属性指向脚

Java使用Jetty实现嵌入式Web服务器及Servlet容器

首先来介绍下 Jetty,根据 wiki 的介绍: Jetty 是一个纯粹的基于 Java 的网页服务器和 Java Servlet 容器.尽管网页服务器通常用来为人们呈现文档,但是 Jetty 通常在较大的软件框架中用于计算机与计算机之间的通信. Jetty 作为 Eclipse 基金会的一部分,是一个自由和开源项目.该网页服务器被用在 Apache ActiveMQ.Alfresco.Apache Geronimo.Apache Maven.Google App Engine.Eclipse

Jetty实战之 嵌入式Jetty运行web app

Jetty实战之 嵌入式Jetty运行web app 博客分类: 应用服务器 jettywar 转载地址:http://blog.csdn.net/kongxx/article/details/7237034 要说嵌入式运行Jetty,最常用的还应该是运行一个标准的war文件或者指定一个webapp目录. 0. 首先需要添加Jetty运行时webapp的依赖包,下面是一个完整的pom.xml文件 写道 <project xmlns="http://maven.apache.org/POM/

将web应用打成war包发布到服务器

如何将web应用打成war应用发布到服务器步骤: (1)先有一web应用"google"在C:盘下,如图: google下目录有WEB-INF文件夹(下有classes.lib.web.xml)和google.html文件 (2)进入C:目录,执行"jar -cvf  goo.war google" (3)然后将生成的goo.jar包放入C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps下 (

Spring boot如何打war包发布到tomcat

前言: 平时在使用java做项目开发时,首先想到利用框架来提升开发效率,和提高可维护性.选择spring可以使用ssm(spring框架,springMVC,mybatis),而且企业中应用也比较广泛,然而还是发现,在框架中有很多配置,而且看起来相当繁琐,并且在这些配置中,大部分都属于默认配置,习惯配置.因此spring boot就此诞生,它的主要目的就是实现"0"配置,此处的"0"不是代表没有配置,而是代表极少的配置.并且spring boot还内置了tomcat

将Web项目War包部署到Tomcat服务器基本步骤(完整版)

1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布. War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压. 1.2 Tomcat服务器 Tomcat服务器是一个免费的开放源代码

嵌入式web服务器

现在在嵌入式设备中所使用的web服务器主要有:boa.thttpd.mini_httpd.shttpd.lighttpd.goaheand.appweb和apache等. Boa 1.介绍 Boa诞生于1991年,作者Paul Philips.是开源的,应用很广泛,特别适合于嵌入式设备,网上流行程度很广.它的官方网站说boa是最受人喜爱的嵌入式web服务器.功能较为强大,支持认证,cgi等.Boa 是一个单任务的HTTP SERVER,它不像传统的web服务器那样为每个访问连接开启一个进程,也不

一个jetty部署多个项目配置之方法

一个jetty部署多个项目配置之方法 原文地址:http://my.oschina.net/wangyongqing/blog/115647 Jetty用户经常想配置他们的web应用到不同的虚拟主机. 通常情况下,一个单一的IP地址的机器有不同的DNS解析名与它相关联的,部署在这个机器上的web应用必须能够通过这些关联的DNS解析名访问到. Another possibility is to serve different web applications from different virt

嵌入式web服务

:boa.thttpd.mini_httpd.shttpd.lighttpd.goaheand.appweb和apache等. Boa 1.介绍 Boa诞生于1991年,作者Paul Philips.是开源的,应用很广泛,特别适合于嵌入式设备,网上流行程度很广.它的官方网站说boa是最受人喜爱的嵌入式web服务器.功能较为强大,支持认证,cgi等.Boa 是一个单任务的HTTP SERVER,它不像传统的web服务器那样为每个访问连接开启一个进程,也不会为多个连接开启多个自身的拷贝.Boa对所有