`

自己构建微服务(springmvc+内嵌jetty+maven 环境配置)

阅读更多

pom.xml文件

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>mymvc</groupId>

<artifactId>springmvc.jetty</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>springmvc.jetty Maven Webapp</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<javax-activation.version>1.1</javax-activation.version>

<spring.version>4.0.4.RELEASE</spring.version>

<jetty.version>9.2.15.v20160210</jetty.version>

</properties>

 

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

 

<dependency>

<groupId>org.eclipse.jetty</groupId>

<artifactId>jetty-jsp</artifactId>

<version>${jetty.version}</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.eclipse.jetty</groupId>

<artifactId>jetty-webapp</artifactId>

<version>${jetty.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>${spring.version}</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring.version}</version>

</dependency>

 

</dependencies>

<build>

<finalName>springmvc.jetty</finalName>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<version>2.4.3</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<createDependencyReducedPom>false</createDependencyReducedPom>

<transformers>

<transformer

implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

<mainClass>com.test.jettyemb.Lauhcher</mainClass>

</transformer>

</transformers>

<filters>

<filter>

<artifact>*:*</artifact>

<excludes>

<exclude>META-INF/*.SF</exclude>

<exclude>META-INF/*.DSA</exclude>

<exclude>META-INF/*.RSA</exclude>

</excludes>

</filter>

</filters>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

</build>

</project>

 

启动main类

 

package com.test.jettyemb;

 

import org.eclipse.jetty.server.Connector;

import org.eclipse.jetty.server.Server;

import org.eclipse.jetty.server.ServerConnector;

import org.eclipse.jetty.webapp.WebAppContext;

 

public class Launcher {

 

public static final int PORT = 8080;

public static final String CONTEXT = "/";

 

private static final String DEFAULT_WEBAPP_PATH = "src/main/webapp";

 

/**

 * 创建用于开发运行调试的Jetty Server, 以src/main/webapp为Web应用目录.

 */

public static Server createServerInSource(int port, String contextPath) {

Server server = new Server();

// 设置在JVM退出时关闭Jetty的钩子。

server.setStopAtShutdown(true);

 

// 这是http的连接器

ServerConnector connector = new ServerConnector(server);

connector.setPort(port);

// 解决Windows下重复启动Jetty居然不报告端口冲突的问题.

connector.setReuseAddress(false);

server.setConnectors(new Connector[] { connector });

 

WebAppContext webContext = new WebAppContext(DEFAULT_WEBAPP_PATH, contextPath);

// webContext.setContextPath("/");

webContext.setDescriptor("src/main/webapp/WEB-INF/web.xml");

// 设置webapp的位置

webContext.setResourceBase(DEFAULT_WEBAPP_PATH);

webContext.setClassLoader(Thread.currentThread().getContextClassLoader());

server.setHandler(webContext);

return server;

}

 

/**

 * 启动jetty服务

 * 

 * @param port

 * @param context

 */

public void startJetty(int port, String context) {

final Server server = Launcher.createServerInSource(PORT, CONTEXT);

try {

server.stop();

server.start();

server.join();

} catch (Exception e) {

e.printStackTrace();

System.exit(-1);

}

}

 

public static void main(String[] args) {

new Launcher().startJetty(8080, "");

}

}

 

测试

cmd到根目录

打包 mvn package

运行 java -jar name-version.jar

 

 

 

 

参考网址

http://www.geedoo.info/springmvc-jetty-embedded-detailed-use.html

 

另外其他一个提供了一个springmvc+jetty的例子再github上

http://www.cnblogs.com/yjmyzz/p/jetty-embed-demo.html

https://github.com/yjmyzz/jetty-embed-demo

 

 上述例子出现打包目录结构释放加载问题,后面自己修改jetty-embed-demo后可以成功运行

附上例子下载

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics