`
manyinjin
  • 浏览: 92246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在JettyServer中构建无web.xml的web application

阅读更多
    JettyServer常常会作为内嵌的server,特别是在我们开发JavaEE的应用的时候,JettyServer+Hsqldb会大大的加快我们开发的速度,它广泛应用于针对webapplication的自动化单元测试中。   
    作为一个webapplication,如果没有WEB-INF目录和下面的web.xml,你的反应会是什么?如果是一个Struts2+  Spring的一个webapplication呢?
    有的时候我们真的有这种需求,比如我要用一个jar包来发布一个功能简单的application,既有webservice又是RESTfull的,在希望它是一种很light的方式的同时又希望利用Struts+Spring来做,怎么办呢?
    我们来看看一种甚至是web.xml都不需要的方式吧。
final ClassPathXmlApplicationContext originalContext = 
    new ClassPathXmlApplicationContext("accountServiceContext.xml");

        Object o = originalContext.getBean("accountService");
       //publish accountservice as a webservice with XFire
        XFire xfire = XFireFactory.newInstance().getXFire();
        ServiceFactory factory = new ObjectServiceFactory(xfire.getTransportManager(), null);
        Service service = factory.create(AccountService.class);
        service.setInvoker(new BeanInvoker(o));
        xfire.getServiceRegistry().register(service);
        try {
            int port = Integer.parseInt(System.getProperty("port", "9999"));
            server = new Server(port);
           //build a webappContext without WEN-INF/web.xml
            WebAppContext webApp = new WebAppContext();
            webApp.setContextPath("/");
            webApp.setBaseResource(Resource.newClassPathResource(""));
            webApp.setConfigurations(new Configuration[0]);
            webApp.addFilter(RedirectFilter.class, "/*", 1);
            //org.apache.struts2.dispatcher.FilterDispatcher, let struts recongonize our actions
            webApp.addFilter(FilterDispatcher.class, "/*", 1).setInitParameter("actionPackages", "com.***.action");
            webApp.addServlet(XFireServlet.class, "/*");
            webApp.addEventListener(new ServletContextListener() {
                public void contextInitialized(ServletContextEvent sce) {
                    //use spring context to build a webApplicationContext
                    context = new WebApplicationContextWrapper(originalContext, sce.getServletContext());
                   //make spring work with servlet Container
                    sce.getServletContext().setAttribute(
         WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, context);
                }
                public void contextDestroyed(ServletContextEvent sce) {
                }
            });
            server.addHandler(webApp);
            server.start();
        } catch (Exception e) {
              ...
        }
0
0
分享到:
评论

相关推荐

    SpringMVC基于代码的配置方式(零配置,无web.xml)

    在基于代码的配置中,我们不再需要在web.xml中配置,而是通过Spring的@Configuration和@EnableWebMvc注解来实现。不过,由于Spring Boot的自动配置,通常我们并不需要显式地添加@EnableWebMvc,因为已经默认开启了。...

    Maven工程的web.xml模板

    由于经常使用Maven创建web工程所以需要使用web.xml默认模板

    在web.xml中配置action或.do

    ### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...

    javaweb项目中web.xml的作用

    只是网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。 web.xml文件是javaweb项目中的一个非常重要的配置文件,它用于初始化工程配置信息,...

    web.xml各种配置

    在大型Web工程中,web.xml文件非常重要,因为它提供了一个中央配置点,便于管理Web应用的各种资源和服务。 ### Servlet版本与web.xml的结构 不同版本的servlet规范定义了不同的web.xml结构。以Servlet 2.3和...

    Spring全注解project示例 (无web.xml配置)

    3. **无web.xml配置**:在传统的Servlet应用中,web.xml是部署描述符,用于配置Servlet、Filter和Listener等。但在Spring Boot应用中,尤其是使用Spring MVC时,可以借助`@SpringBootApplication`注解启动Spring ...

    web.xml配置详解.pdf

    web.xml 各属性作用描述 Web.xml 常用元素 <web‐app> ‐name>‐name>定义了WEB 应用的名字 <description></description> 声明WEB 应用的描述信息

    web.xml+详细解析.rar

    在Java Web开发中,`web.xml`文件是核心配置文件,它是应用服务器启动时加载的部署描述符,用于定义Web应用程序的结构、配置及行为。本篇将深入探讨`web.xml`的重要概念、元素、属性以及在实际项目中的应用。 1. **...

    servlet的写登陆管理系统用到的web.xmlweb.xml

    servlet的写登陆管理系统用到的web.xml

    快速搭建一个java config(无web.xml)的web工程(一)

    在早期的Spring应用中,配置主要通过XML文件完成,但随着Spring的发展,Java Config的出现使得我们可以使用纯Java代码来配置应用,减少了XML的使用,提高了可读性和维护性。本篇文章将指导你如何快速搭建一个不依赖...

    web.xml 配置详解

    web.xml 配置详解,需要的下载了。。。Web.xml常用元素和在java web规范中说明.按照listner,filter,servlet的顺序初始化

    web.xml配置解析

    `web.xml`是Java Web应用程序中的核心配置文件,用于描述和管理Web应用程序的各种组件,如Servlet、过滤器(Filter)、监听器(Listener)等。它是一个XML文件,遵循特定的DTD(Document Type Definition)规范,...

    web.xml文件

    ssh的web.xml的配置,很实用的哦!

    java web项目 web.xml配置文件下载

    全新的java web项目的配置文件,新建的纯净的web.xml文件,没做任何改动,下载就可以使用了。

    web.xml+详细解析四合一

    WEB.xml是Java EE(现称为Jakarta EE)应用中用来配置和控制应用...随着技术的发展,虽然现代的Java EE应用开发中越来越多的配置转向使用注解和Java配置类,web.xml依然在许多传统项目和特定场景下扮演着重要的角色。

    web.xml的配置文件

    javaweb开发中 web.xml 容易配置失败,这个是头文件,可以照这个修改

    web.xml剪切版本 方便开发

    经过剪切的web.xml 可以直接放在webapp下 只要修改其中的servlet-name即可

    flex4,struts2.3兼容配置web.xml

    flex4,struts2.3兼容配置web.xml

    javax.xml.bind.jar

    `javax.xml.ws`通常指的是JAX-WS,它提供了在Java中构建和使用Web服务所需的基础框架,包括服务接口、客户端代理以及WSDL生成。而`javax.jws`则与JAX-RS有关,它定义了创建RESTful服务和客户端的方法。 【压缩包子...

    web.xml 最全 MIME Type Mappings

    web.xml 最全 MIME Type Mappings 大概有 一千多个

Global site tag (gtag.js) - Google Analytics