在GWT中导入Gears API时找不到org.apache.xerces.jaxp.SAXParserFactoryImpl

我使用Eclipse创建了一个GWT项目,该项目运行良好(我能够在托管模式和Google App Engine上运行),直到我尝试导入Google Web Toolkit的Gears API 。 将以下行添加到我的java源文件后:

import com.google.gwt.gears.client.geolocation.Geolocation; 

我尝试编译时收到以下错误:

 19-Jun-2009 3:36:09 AM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@1c7d682{/,C:\Documents and Settings\Geoff Denning\workspace\TaskPath\war} javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found 

我已经将gwt-gears.jar文件添加到我的\ war \ WEB-INF \ lib目录中,我在Eclipse中引用它如下:

Eclipse中的Java构建路径http://sofzh.miximages.com/java/148klk4.png

我甚至打开了gwt-gears.jar文件并确认org / apache / xerces / jaxp / SAXParserFactoryImpl.class确实存在。 任何人都可以给我任何指示,为什么我得到上述错误?

检查Xerces是否存在于:

 $JAVA_HOME/lib/endorsed 

听起来像Java 5问题。 还要检查Java系统属性:

 javax.xml.parsers.SAXParserFactory 

它应该是:

 org.apache.xerces.jaxp.SAXParserFactoryImpl 

如果没有那么那就是你的问题,请确保设置系统属性。

显然这是jre 1.5中的一个错误。 我能够通过将Eclipse中的默认JRE从1.5.0_06切换到1.6.0_03来解决问题,如下所示:

Eclipse安装的JRE http://sofzh.miximages.com/java/15fktvd.png

感谢Jon和Rahul指出我正确的方向。

这发生在我身上。 我的工作空间中存在冲突的JAR。 我删除了一个并繁荣它工作。 该消息不能很好地解决错误的根源。

我的SAXParserFactoryImpl问题是由我的启动类路径中的gwt-gadgets.jar引起的。 从引导类路径中删除此JAR解决了我的问题。 基本上,您必须从构建路径(用户库)中删除任何包含SAXParserFactoryImpl类的JAR

删除$ JAVA_HOME / jre / lib / jaxp.properties修复了该问题。

看一下使用Selenium(XercesImpl)和Google App Engine的麻烦 。 我有一个与GWT / GAE类似的问题(未找到SAXParserFactoyImpl)并解决了它;

  1. 将jar导入war / WEB-INF / lib
  2. 将jar添加到构建路径