今天将测试通过的应用,发给售前工程师在客户那进行安装,马上出现问题,在一个下午的不断测试中,最后发现原来是这么回事。工程是一个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这样的文本编辑器,他保存的格式、编码以及换行符都是不同的,生成的文件有问题,具体也没研究过,应该是编码问题吧。
以上的问题,还真无法解释,有朋友了解具体问题所在,可以说明一下。