`

如何在web.xml文件中引入其他的xml文件(web.xml如何拆分)

 
阅读更多

 

      为了便于以后拆分,于是想到将web.xml文件中的servlet和servlet-mapping能够从web.xml脱离出来,用其他xml文件保存然后在web.xml文件中引入这些文件,就想类似引入struts.config一样。
        
        
        具体做法如下:
            1.按模块将servelet从web.xml中拷贝出来,放到一个test.xml中,如test.xml中内容如下:
                <servlet>
                       <servlet-name>testA</servlet-name>
                       <servlet-class>TestA</servlet-class>
                </servlet>
                <servlet-mapping>
                    <servlet-name>testA</servlet-name>
                    <url-pattern>/testA.do</url-pattern>
                </servlet-mapping>


            2.在我的WEB-INF/web.xml中引入test.xml
                <!DOCTYPE web-app [

                    <!ENTITY test SYSTEM  "file:///D:/eclipse/workspace/Test/WebRoot/WEB-INF/test.xml">
                    <!ENTITY admin SYSTEM  "admin.xml">

                ]>  

                或者:

 

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" [ 

	  <!ENTITY ssoconf SYSTEM "test.xml">
	  <!ENTITY smartclientconf SYSTEM "admin.xml">

]>

 

                <web-app version="2.5" 
                     xmlns="http://java.sun.com/xml/ns/j2ee" 
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

 

                     http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"                               

                >    
                &test;
                &admin;
                </web-app>
            以上修改即可,web.xml会在开头引入你的test.xml.然后  &test;表示你放的地方。 
            如果设定的是相当路径,可以如此设定:
            如果test.xml和web.xml在同一个文件夹,则   [<!ENTITY test SYSTEM  "test.xml">]
            如果test.xml在web.xml所在文件夹的ccc文件夹中,则  [<!ENTITY test SYSTEM  "ccc/test.xml">]

 

  3.以上做法在Window下使用,不會出錯,但是部署到Linux時就會出錯:

            2011-12-15 09:09:39,136 ERROR [org.apache.jasper.xmlparser.ParserUtils] - Invalid PUBLIC     ID: null

org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/web.xml

        at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:113)

        at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:70)

        at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:188)

        at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:240)

        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:160)

        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)

        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)

        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)

        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)

        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)

        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)

        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)

        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)

        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

        at javaservlets.common.util.IndexServlet.doProcess(IndexServlet.java:368)

        at javaservlets.common.util.IndexServlet.doGet(IndexServlet.java:712)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

        at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)

        at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)

        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)

        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)

        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)

        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)

        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

        at java.lang.Thread.run(Thread.java:619)

 不知道原因?

 

分享到:
评论

相关推荐

    在web.xml中引入其他xml配置文件的步骤

    ### 在web.xml中引入其他XML配置文件的步骤 在Java Web开发中,`web.xml`作为Web应用程序的核心配置文件,负责定义应用级别的配置信息。为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML...

    web.xml各种配置

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

    web.xml中配置过滤器

    在 web.xml 文件中配置过滤器 在 Java Servlet 编程中,过滤器是一个非常重要的概念,它允许开发者截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP 页面发出的响应。在 web.xml 文件中配置...

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

    要启用SpringMVC,首先需要在项目中引入Spring Boot的Web依赖。在Maven的pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web ``` 三、创建...

    web.xml配置详细介绍(CHM)

    在Java Web开发中,`web.xml`是部署描述符(Deployment Descriptor)的核心文件,它定义了应用程序的行为和结构。这个CHM文件深入解析了`web.xml`的各种配置元素,帮助开发者更好地理解和控制Web应用程序的运行方式...

    javax.xml.rpc相关jar包

    在Java编程环境中,XML(eXtensible Markup Language)是一种重要的数据交换格式,广泛用于不同系统之间的通信。而`javax.xml.rpc`是Java平台标准版(Java SE)的一部分,它提供了一组API来支持Web服务的开发。这个...

    spring无web.xml零配置

    在现代的Spring框架开发中,"spring无web.xml零配置"是一种常见的实践,它通过Java配置(javaconfig)替代了传统的XML配置方式。这种方式使得应用更加灵活,代码更易于理解和维护。下面我们将深入探讨这个主题。 ...

    javax.xml.rpc

    同时,理解XML-RPC和Web服务的基本概念以及它们在Java环境中的实现,有助于排查和解决问题。如果遇到类似问题,可以尝试清理并重建项目,检查IDE或构建工具的设置,或者查阅相关文档来获取帮助。

    JSP标签,采用web.xml引入标签库描述文件

    本文将深入探讨JSP标签,特别是自定义标签,并解释如何通过`web.xml`配置文件来引入标签库描述文件,以便在JSP页面中使用这些标签。 首先,JSP标准标签库(JSTL)是一套预定义的标签,用于处理常见的任务,如迭代、...

    web.xml加入taglib报错

    在Struts项目中,通常会在`web.xml`中引入Struts的核心标签库,例如: ```xml &lt;taglib-uri&gt;struts-bean &lt;taglib-location&gt;/WEB-INF/tld/struts-bean.tld &lt;taglib-uri&gt;struts-html&lt;/taglib-uri&gt; ...

    ant编译java web的build.xml文件

    本文将深入探讨`build.xml`文件的结构和功能,以及如何利用它来编译Java Web应用。 1. **Ant基础** Apache Ant是一种基于XML的构建工具,由Apache软件基金会开发。它的主要任务是读取`build.xml`文件,并根据其中...

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

    在Java开发领域,Web应用程序的配置方式有很多种,其中一种是使用Java Config,它提供了一种无需XML配置的方式来创建和管理Spring框架中的bean。本篇文章将详细介绍如何快速搭建一个基于Java Config的Web工程,该...

    剖析web.xml详解

    14. taglib taglib元素用于引入自定义标签库的TLD(Tag Library Descriptor)文件,这在JSP开发中非常常见,它允许开发者扩展JSP的功能,创建自定义的标签。 15. login-config login-config元素定义了应用的认证...

    DWR2.jar + DWR.xml + DWR2.0.dtd + Web.xml

    开发者在项目中引入这个JAR文件,就能利用DWR提供的功能,创建远程方法调用,实现在客户端JavaScript与服务器端Java代码之间的无缝通信。 **DWR.xml** 是DWR的配置文件,用于定制DWR的行为和设置。在这个文件中,你...

    web.xml详解

    XML元素不仅对大小写敏感,还对其在文件中的位置有严格要求。以下列出了所有可以直接出现在`&lt;web-app&gt;`元素内的合法元素的必要顺序: 1. **icon**:指出IDE和GUI工具用来表示Web应用的一个或两个图像文件的位置。 2...

    Web.xml中配置Struts[文].pdf

    7. Filter配置:虽然不是直接在`web.xml`中配置Struts,但Struts2引入了Filter的概念,`struts2-core.jar`包含了一个名为`StrutsPrepareAndExecuteFilter`的Filter,用来处理所有的HTTP请求,替代了Struts1中的...

    spring4的所有jar包+applicationContext.xml+web.xml

    在“spring4的所有jar包+applicationContext.xml+web.xml”这个组合中,我们主要讨论以下几个关键知识点: 1. **Spring框架的jar包**:Spring框架由多个模块组成,每个模块都有相应的jar包。主要包括Spring Core、...

    web.xml详细配置说明

    在Java Web开发中,`web.xml`文件是核心的部署描述符,它定义了Web应用程序的行为和配置。本文将详细解释`web.xml`的配置方法,帮助开发者理解和掌握其重要元素及顺序。 1. 定义头和根元素 `web.xml`文件的开头...

    Struts2手动搭建所有的jar包及相应的struts.xml和web.xml

    本教程将详细讲解如何手动搭建一个完整的Struts2环境,包括引入所有必要的jar包以及配置struts.xml和web.xml文件。 首先,我们需要准备Struts2的核心库。Struts2框架依赖于一系列的jar包,这些包包含了从控制器到...

Global site tag (gtag.js) - Google Analytics