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) {
...
}
分享到:
相关推荐
在基于代码的配置中,我们不再需要在web.xml中配置,而是通过Spring的@Configuration和@EnableWebMvc注解来实现。不过,由于Spring Boot的自动配置,通常我们并不需要显式地添加@EnableWebMvc,因为已经默认开启了。...
由于经常使用Maven创建web工程所以需要使用web.xml默认模板
### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...
只是网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。 web.xml文件是javaweb项目中的一个非常重要的配置文件,它用于初始化工程配置信息,...
在大型Web工程中,web.xml文件非常重要,因为它提供了一个中央配置点,便于管理Web应用的各种资源和服务。 ### Servlet版本与web.xml的结构 不同版本的servlet规范定义了不同的web.xml结构。以Servlet 2.3和...
3. **无web.xml配置**:在传统的Servlet应用中,web.xml是部署描述符,用于配置Servlet、Filter和Listener等。但在Spring Boot应用中,尤其是使用Spring MVC时,可以借助`@SpringBootApplication`注解启动Spring ...
web.xml 各属性作用描述 Web.xml 常用元素 <web‐app> ‐name>‐name>定义了WEB 应用的名字 <description></description> 声明WEB 应用的描述信息
在Java Web开发中,`web.xml`文件是核心配置文件,它是应用服务器启动时加载的部署描述符,用于定义Web应用程序的结构、配置及行为。本篇将深入探讨`web.xml`的重要概念、元素、属性以及在实际项目中的应用。 1. **...
servlet的写登陆管理系统用到的web.xml
在早期的Spring应用中,配置主要通过XML文件完成,但随着Spring的发展,Java Config的出现使得我们可以使用纯Java代码来配置应用,减少了XML的使用,提高了可读性和维护性。本篇文章将指导你如何快速搭建一个不依赖...
web.xml 配置详解,需要的下载了。。。Web.xml常用元素和在java web规范中说明.按照listner,filter,servlet的顺序初始化
`web.xml`是Java Web应用程序中的核心配置文件,用于描述和管理Web应用程序的各种组件,如Servlet、过滤器(Filter)、监听器(Listener)等。它是一个XML文件,遵循特定的DTD(Document Type Definition)规范,...
ssh的web.xml的配置,很实用的哦!
全新的java web项目的配置文件,新建的纯净的web.xml文件,没做任何改动,下载就可以使用了。
WEB.xml是Java EE(现称为Jakarta EE)应用中用来配置和控制应用...随着技术的发展,虽然现代的Java EE应用开发中越来越多的配置转向使用注解和Java配置类,web.xml依然在许多传统项目和特定场景下扮演着重要的角色。
javaweb开发中 web.xml 容易配置失败,这个是头文件,可以照这个修改
经过剪切的web.xml 可以直接放在webapp下 只要修改其中的servlet-name即可
flex4,struts2.3兼容配置web.xml
`javax.xml.ws`通常指的是JAX-WS,它提供了在Java中构建和使用Web服务所需的基础框架,包括服务接口、客户端代理以及WSDL生成。而`javax.jws`则与JAX-RS有关,它定义了创建RESTful服务和客户端的方法。 【压缩包子...
web.xml 最全 MIME Type Mappings 大概有 一千多个