今天将测试通过的应用,发给售前工程师在客户那进行安装,马上出现问题,在一个下午的不断测试中,最后发现原来是这么回事。工程是一个J2EE应用,WebObject打包成War;
我使用了Proxool连接池,在web.xml配置了连接池的proxool.xml
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- <web-app >
- <servlet>
- <servlet-name>ServletConfiguratorservlet-name>
- <servlet-class>
- org.logicalcobwebs.proxool.configuration.ServletConfigurator
- servlet-class>
- <init-param>
- <param-name>xmlFileparam-name>
- <param-value>WEB-INF/proxool.xmlparam-value>
- init-param>
- <load-on-startup>1load-on-startup>
- servlet>
在proxool.xml中也按proxool官方的设置
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- <something-else-entirely>
- <proxool>
-
- <alias>DBPoolalias>
-
- <driver-url>jdbc:oracle:thin:@192.168.0.2:1521:drcomdriver-url>
-
- <driver-class>oracle.jdbc.driver.OracleDriverdriver-class>
- <driver-properties>
- <property name="user" value="drcom"/>
- <property name="password" value="drcom"/>
- driver-properties>
-
- <house-keeping-sleep-time>90000house-keeping-sleep-time>
-
- <maximum-new-connections>150maximum-new-connections>
-
- <prototype-count>3prototype-count>
-
- <maximum-connection-count>100maximum-connection-count>
-
- <minimum-connection-count>3minimum-connection-count>
- proxool>
- something-else-entirely>
启动Tomcat后出现如下错误
xml 代码
- 严重: Problem configuring WEB-INF/proxool.xml
- org.logicalcobwebs.proxool.ProxoolException: Parsing failed.
- at org.logicalcobwebs.proxool.configuration.JAXPConfigurator.configure(JAXPConfigurator.java:91)
- at org.logicalcobwebs.proxool.configuration.JAXPConfigurator.configure(JAXPConfigurator.java:56)
- at org.logicalcobwebs.proxool.configuration.ServletConfigurator.init(ServletConfigurator.java:120)
- at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
- at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
- at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
- at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
- at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
- at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
- at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
报的是Xml的Parsing failed异常。马上进行排察:
- 读取WEB-INF/proxool.xml是否成功;
- Web.xml配置是否正确;
- proxool.xml配置是否正确;
- 两个配置文件是否符合Xml规范。
按道理,在我们这边打包测试成功,怎么到了客户机器上却无法识别XML呢。开始以为是:
- XML的标头问题
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->>
- <web-app>
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
-
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
-
后来测试了,也无法正常运行,最后才没办法删除掉porxool.xml,重新建一个proxool.xml文件,这下,测试OK了,
原来,我们开发的时候一直都是用UltraEdit-32这样的文本编辑器,他保存的格式、编码以及换行符都是不同的,生成的文件有问题,具体也没研究过,应该是编码问题吧。
以上的问题,还真无法解释,有朋友了解具体问题所在,可以说明一下。