web.xml引用外部xml文件。以及org.xml.sax.SAXException
编程技术  /  houtizong 发布于 3年前   149
很多时候因为各种各样的原因,需要在各种xml文件来引用外部的xml文件。
我遇到了两种,一种是普通配置的xml文件引用外部xml文件。
可以用
<import resource="classpath:tuloginContext.xml" />
这是相对路径,当然,这句代码的位置需要注意。这个在beans下面,与bean平级,如果写错了,会不执行,就会导入出错,或者就是不执行也不报错。
<beans>
<import resource="classpath:tuloginContext.xml" />
<bean></bean>
</beans>
另一种是web.xml引用外部xml文件。这个是我看大神写的。原网站如下。
http://www.blogjava.net/jiangjf/archive/2009/04/09/264685.html
我的需求和理解:
因为项目中很多东西需要放到web.xml中部署,或者,有一些相同的代码需要放到不同的web.xml中部署,所以,就用到了web.xml拆分。
根据文章介绍。
需要在文章顶部加上这个:
<!DOCTYPE web-app [<!ENTITY test SYSTEM "file:///D:/eclipse/workspace/Test/WebRoot/WEB-INF/test.xml"> <!ENTITY admin SYSTEM "admin.xml">]>
这里的test 和 admin 是自定义的名称。后面两个,分别是相对路径和绝对路径。记住,是顶部,下面是我写的。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app [<!ENTITY tulogin SYSTEM "tulogin.xml">]><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_admin" version="3.0">
错误代码如下:
七月 14, 2015 10:41:53 上午 org.apache.catalina.startup.ContextConfig parseWebXml严重: Parse error in application web.xml file at jndi:/localhost/file-server/WEB-INF/web.xmlorg.xml.sax.SAXException: Scanner State 24 not Recognized at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1883)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1252)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)at java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)
在引用这段代码的位置,写这个就可以了
&tulogin; & + 你自己定义的名称 + ;还有一个问题。
项目部署的时候,会自动执行web.xml。所以,如果一个项目中,引用了另外项目的xml,这个,我不知道怎么解决这个问题。
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接