在应用程序内使用Spring启动内嵌的Jetty服务总共有2种方式:
1. 一种是启动一个独立运行的Jetty服务,使用独立的Spring配置,跟应用之间完全独立
2. 一种是启动一个与应用共享ApplicationContext的服务,可以访问应用的全部内容
对于第一种独立的Jetty服务:
Server server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setPort(12345); server.addConnector(connector); final ServletHolder servletHolder = new ServletHolder(new CXFServlet()); final ServletContextHandler context = new ServletContextHandler(); context.setContextPath("/data-service"); context.addServlet(servletHolder, "/*"); context.addEventListener(new ContextLoaderListener()); context.setInitParameter("contextConfigLocation", "classpath:spring-server.xml"); //设置字符编码,否则默认是使用机器的编码,一般是ISO-8859 CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding("UTF-8"); filter.setForceEncoding(true); context.addFilter(new FilterHolder(filter), "/*", EnumSet.allOf(DispatcherType.class)); server.setHandler(contextHandler); server.start(); server.join();
对于第二种方式,在构造ContextHandler时,稍微有所不同,同时需要注入当前应用的ApplicationContext
public class EmbedDataServiceServer implements ApplicationContextAware { private ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } public void start() throws Exception { Server server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setPort(12345); server.addConnector(connector); final WebAppContext context = new WebAppContext(); context.setContextPath("/" + config.getCallbackContextPath()); context.setConfigurationDiscovered(true); context.setParentLoaderPriority(true); context.setResourceBase("web"); context.addServlet(CXFServlet.class, "/*"); context.setClassLoader(applicationContext.getClassLoader()); XmlWebApplicationContext xmlWebAppContext = new XmlWebApplicationContext(); xmlWebAppContext.setParent(applicationContext); xmlWebAppContext.setConfigLocation(""); xmlWebAppContext.setServletContext(context.getServletContext()); xmlWebAppContext.refresh(); context.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, xmlWebAppContext); //设置字符编码,否则默认是使用机器的编码,一般是ISO-8859 CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding("UTF-8"); filter.setForceEncoding(true); context.addFilter(new FilterHolder(filter), "/*", EnumSet.allOf(DispatcherType.class)); server.setHandler(contextHandler); server.start(); server.join(); } }
Java版本: JDK 1.7
使用jar包版本:
spring 4.1.4.RELEASE
cxf 2.7.6
jetty 8.1.17.v20150415
这里参考了另外一位老兄的记录整理而来,参考地址:
http://blog.csdn.net/danieluk/article/details/18750115
相关推荐
NULL 博文链接:https://fuaotech.iteye.com/blog/2292707
支持web接口的批处理框架 在eclipse中导出为可执行的jar,无需部署到任何web容器中。直接通过bat或shell启动即可。...mybatis3.4.1 druid1.0.17 smg3(决策引擎) jetty8.1.5 fastjson1.2.7 springjdbc3.2.14
内嵌Jetty的HelloWorld教程 内嵌Jetty视频 优化Jetty 如何配置垃圾收集 如何配置以支持高负载 在Jetty中部署应用 部署管理器 部署绑定 热部署 Context提供者 如何部署web应用 webApp提供者 如何部署第三方产品 部署...
Spring MVC嵌入式码头示例 使用嵌入式Jetty 9服务器的基本Spring MVC 4应用程序。 无xml配置。 包括API REST服务,Freemarker和JSP示例。 与Mongo DB集成。 要求
1.27 idea内嵌jetty运行springmvc项目报ConversionFailedException 1.28 springmvc 3.2 @MatrixVariable注解 1.29 spring3.2 带matrix变量的URL匹配问题 1.30 Shiro+Struts2+Spring3 加上@RequiresPermissions 后@...
其次,Spring Boot支持内嵌的Servlet容器(如Tomcat、Jetty、Undertow等),这意味着你可以将应用程序打包为一个可执行的JAR文件,并直接运行,无需单独安装和配置外部容器。这大大简化了应用的部署过程,提高了开发...
内嵌的容器:Spring Boot 可以打包成一个独立的 JAR 文件,并且内置了 Tomcat、Jetty 或 Undertow 等容器,使得应用程序可以直接运行,而无需外部容器的支持。 自动化的依赖管理:Spring Boot 通过 Starter POMs ...
使用Spring Boot v. 5. 了解Spring Boot特性 vi. 6. 迁移到生存环境 vii. 7. 高级主题 3. II. 开始 i. 8. Spring Boot介绍 ii. 9. 系统要求 i. 9.1. Servlet容器 iii. 10. Spring Boot安装 i. 10.1. 为Java开发者...
Spring Boot是一个用于简化Spring应用程序创建和开发过程的框架。它的设计目标是通过...内嵌Servlet容器:Spring Boot的应用程序内嵌了Tomcat或Jetty等Servlet容器,使得开发人员无需单独部署和配置应用程序的容器。
2、内嵌服务器:Spring Boot 提供内嵌的 Tomcat、Jetty 和 Undertow 等 Web 服务器,使得应用程序的部署变得非常简单,开发人员只需要将应用程序打包成一个jar文件,即可在任何地方运行应用程序 3、简化依赖...
springboot ...2. 内嵌服务器:Spring Boot内置了多种常用的服务器,如Tomcat、Jetty等,无需额外配置,即可启动和行应用。 3. 自动化依赖管理: Boot的起步依赖简化了依赖管理的工作,只需在配置文件
Spring能做什么 Spring具有哪些能力呢?这点在Spring的官网上有比较详情的描述,我们可以在Spring的项目 里看到Spring的生态涵盖了web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等等 ...
内嵌服务器:支持内嵌Tomcat、Jetty或Undertow等Web服务器,减少了部署的复杂性。 生产就绪特性:具备监控、度量和健康检查等功能,适合生产环境使用。 Spring Boot的开发工具: Spring Tool Suite (STS):这是...
SpringBoot实际上就是一个整合很多可插拔的组件(框架),内嵌了使用工具(诸如内嵌了Tomcat,Jetty等),方便开发人员快速建造和开发的一个框架。 IoC ( Inversion of Control ,控制倒转)。这是spring的核心,...
(2)内嵌Tomcat或Jetty等Servlet容器; (3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置; (4)尽可能自动配置Spring容器; (5)提供准备好的特性,如指标、健康检查和外部化配置; (6)...
2. 内嵌服务器:Spring Boot默认内嵌了常用的Web服务器(如Tomcat、Jetty等),无需手动部署到独立的服务器上,可以直接运行。 3. 自动化依赖管理:Spring Boot提供了一个强大的依赖管理工具,可以根据项目的需求...
应用服务器jetty, 内嵌在Spring-Boot里. 准备测试一下几种matrix 方式 HTTP线程池 工作线程池 工作线程等待时间 异步 16 16 1s 异步 16 16 0.1s 同步 16 16 1s 同步 16 16 0.1s 同步 100 16 1s 同步 200 16 1s 并发...
因此我们要以一种新的思维方式来重新思考Web开发,Rails、Django和TurboGears这样的动态框架给我们铺平了道路。Grails建立在这些概念之上,它极大地降低了在Java平台上建立Web应用的复杂性。与那些框架不同的是,...
spring boot项目,生成war文件,支持java -jar的方式启动项目,内嵌tomcat或者jetty容器。 软件架构 软件架构说明 安装教程 xxxx xxxx xxxx 使用说明 xxxx xxxx xxxx 参与贡献 Fork 本项目 新建 Feat_xxx 分支 提交...
基于Spring Boot 1.5.9,内嵌Jetty 提供双重异常捕获,查看到Json,跨域访问等功能 提供Maven配置文件和Spring配置文件完美融合的解决方案 集成通用Mapper和PageHelper,添加BaseService,常用CRUD无需编写代码 集成...