这两天在DWR上弄ajax,起初在tomcat环境下运行dwr自带的demo都无法运行。当时可急死了偶。最终在网上找了N多资料才发现,原来问题的关键是JDK的版本问题。
tomcat的异常信息如下:
org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
at uk.ltd.getahead.dwr.convert.DOMConverter.<init>(DOMConverter.java:134)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at uk.ltd.getahead.dwr.impl.DefaultConverterManager.addConverter(DefaultConverterM anager.java:47)
at uk.ltd.getahead.dwr.Configuration.loadConvert(Configuration.java:191)
at uk.ltd.getahead.dwr.Configuration.loadAllows(Configuration.java:174)
at uk.ltd.getahead.dwr.Configuration.addConfig(Configuration.java:76)
at uk.ltd.getahead.dwr.Configuration.addConfig(Configuration.java:46)
at uk.ltd.getahead.dwr.DWRServlet.init(DWRServlet.java:121)
DWR官方网站说JDK至少为1.4.2的版本以上,但DWR2.0在1.4.2.08的版本下根本无法正常运行。
解决办法:
step1:下载安装JDK5.0。
step2:停止tomcat。
step3:删除 TOMCAT/common/endorsed/xml-apis.jar 文件。
step4:重启tomcat
问题解决。
还有一个问题就是如何在weblogic8.1下配置DWR,DWR官方网站只是说把dwr.jar文件放在WEB-INF/目下就可以了,但我试了,根本没用。
由于weblogic8.1的JDK是1.4.1的版本,所以必须要把JDK的路径换成5.0的JDK路径。但换了以后,WEBLOGIC又报异常,根本无法正常启动。