`

自己构建微服务(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后可以成功运行

附上例子下载

 

 

分享到:
评论

相关推荐

    springboot + springmvc + mybatis + maven搭建成框架restful API

    标题 "springboot + springmvc + mybatis + maven搭建成框架restful API" 描述了一个使用现代Java技术栈构建的RESTful服务。这个框架结合了Spring Boot、Spring MVC、MyBatis和Maven,这些都是Java开发中的核心工具...

    Spring Boot + SpringMVC + MyBatis + Layui+Mysql宿舍管理系统源码

    - 内嵌式Web服务器:Spring Boot支持内嵌Tomcat或Jetty,无需额外部署WAR文件。 - Actuator:提供健康检查、指标、审计等监控功能,方便微服务管理和运维。 2. **SpringMVC**: - SpringMVC是Spring框架的一部分...

    嵌入jetty的springMVC可运行jar的REST+

    标题中的“嵌入jetty的springMVC可运行jar的REST+”指的是使用Jetty作为嵌入式服务器来运行一个包含Spring MVC的Java Web应用程序,该应用提供了RESTful API服务。这种架构允许开发者将Web服务器与应用代码打包成...

    IDEA整合SpringMVC开发框架(maven+springboot)Demo

    **标题与描述解析** 标题"IDEA整合SpringMVC开发框架(maven+...通过这个"IDEA整合SpringMVC开发框架(maven+springboot)Demo"项目,开发者可以快速了解并实践上述技术栈的整合,为自己的Web应用开发打下基础。

    springboot+springmvc+mybatis项目整合

    Spring Boot 同时还集成了内嵌式Web服务器,如Tomcat或Jetty,允许开发者快速构建可执行的JAR或WAR包,而无需额外部署到外部容器。 在Spring Boot的基础上,我们可以进一步整合Spring MVC和MyBatis来构建一个完整的...

    SpringMVC5.0.3所需Jar

    在开发过程中,开发者可能会使用Spring Boot,这是一个简化Spring应用初始搭建及配置的工具,它内嵌了Servlet容器,并包含了许多默认的配置,使得快速启动SpringMVC项目变得简单。 SpringMVC 5.0.3的Jar包可能包括...

    SpringBoot学习笔记

    Hibernate + Spring)或SSM(Spring + SpringMVC + MyBatis)框架组合时,开发者需要花费大量时间在配置文件上,如各种Bean的定义、属性的设置等,并且容易遇到jar包冲突等问题,使得项目构建变得繁琐复杂。...

    SpringMVC精品资源--Starter Kit for Spring Boot based (REST API.zip

    它内嵌了Tomcat或Jetty服务器,可以无需额外配置即可启动应用,并且提供了大量起步依赖(Starters)来简化依赖管理。 **REST API的理解与实现** REST(Representational State Transfer)是一种网络应用程序的设计...

    SpringBoot深入理解

    尽管SpringBoot不是专门为微服务设计的,但它提供了一套完善的技术栈,使得开发者能够轻松地构建微服务应用。SpringBoot简化了单个微服务的开发,但如何管理和服务之间交互的问题仍需解决,这就引出了SpringCloud。 ...

    springboot总结.doc

    Spring Boot 并非微服务框架本身,但它为微服务架构提供了便利,是构建微服务的基础。而 Spring Cloud 是基于 Spring Boot 实现的一套完整的微服务解决方案,包括服务注册、服务发现、熔断机制、配置中心等组件。 ...

    SpringBoot敏捷开发技术

    - **Maven的安装和环境配置**:涉及下载Maven、配置环境变量以及设置Maven的全局配置文件settings.xml。 - **Eclipse集成Maven**:如何在Eclipse这样的IDE中配置Maven插件,以便在IDE中方便地管理和构建Maven项目。 ...

    Springboot项目示例

    3. **内嵌Web服务器**:SpringBoot可以内嵌Tomcat、Jetty等Web服务器,无需额外部署,大大简化了开发流程。在这个示例中,我们可以看到如何在SpringBoot中集成Spring MVC,用于构建RESTful API。 4. **Spring MVC**...

    基于SpringBoot+Vue的乡政府管理系统源码数据库.zip

    2. 内嵌式Web服务器:SpringBoot可以内嵌Tomcat或Jetty等服务器,无需额外部署,简化了开发流程。 3. Starter依赖管理:通过引入starter-pom,可以轻松添加所需依赖,如Spring Data JPA、Thymeleaf等。 二、Vue.js...

    毕业设计,校园新闻系统,使用SpringBoot、SpringMVC、Mybatis、Bootstrap.zip

    SpringBoot通过内嵌Servlet容器(如Tomcat或Jetty),可以“一键启动”应用,无需额外的配置。它还预配置了许多常用功能,如数据源、JPA、WebSocket等,开发者只需添加相应的 starter 包即可启用这些功能。 ...

    SpringBoot+Mybatis+MySQL+thymeleaf框架源码

    SpringBoot的核心特性包括自动配置、内嵌式Web服务器(如Tomcat或Jetty)和起步依赖,这些都极大地减少了配置工作。在本源码中,SpringBoot将作为整个应用的基础,提供服务启动、依赖管理和环境配置等功能。 ...

    SpringMVC精品资源--Reddit clone built using Spring Boot, Sprin.zip

    6. **Spring Cloud**: 用于构建分布式系统,如服务发现、配置中心、负载均衡等。 在这个Reddit克隆项目中,可能会涉及以下技术栈: - **Thymeleaf**:作为视图模板引擎,用于动态生成HTML。 - **JPA** 或 **...

    JavaEE开源demo学习(spring boot, spring, springmvc, mybatis, my.zip

    它通过提供预配置的starter pom依赖,自动配置特性,以及内嵌的HTTP服务器,如Tomcat或Jetty,使得开发者可以快速启动一个功能完备的应用程序。 **Spring MVC** Spring MVC是Spring框架的一个模块,用于构建Web应用...

    2021年springboot2.0 入门到精通

    - **内嵌服务器**:SpringBoot内置了Tomcat、Jetty或Undertow等服务器,开发者无需额外配置即可启动Web应用。 **1.1 系统要求** 开发SpringBoot 2.0应用,至少需要Java 1.8及以上的版本,以及Spring Framework 5.0...

    Spring Boot实战 ,丁雪丰 (译者)

    Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外安装和配置,直接运行主类即可启动应用,提高了开发效率。 4. **Actuator** Actuator是Spring Boot的监控和管理工具,提供了健康检查、审计、...

Global site tag (gtag.js) - Google Analytics