8

我使用 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 构建路径

我什至打开了 gwt-gears.jar 文件并确认 org/apache/xerces/jaxp/SAXParserFactoryImpl.class 确实存在。谁能给我任何关于我为什么会收到上述错误的指示?

4

6 回答 6

5

检查 Xerces 是否存在于:

$JAVA_HOME/lib/endorsed

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

javax.xml.parsers.SAXParserFactory

它应该是:

org.apache.xerces.jaxp.SAXParserFactoryImpl

如果不是,那是您的问题,请确保您设置了系统属性。

于 2009-06-19T04:36:45.083 回答
2

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

Eclipse 安装的 JRE

感谢JonRahul为我指明了正确的方向。

于 2009-06-20T02:24:45.883 回答
1

这发生在我身上。我的工作区中有冲突的 JAR。我删除了一个并繁荣它工作。该消息没有很好地说明错误的根源。

于 2010-06-23T00:13:43.957 回答
1

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

于 2010-08-12T04:52:32.337 回答
0

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

于 2010-12-09T08:39:35.863 回答
0

看看Selenium (XercesImpl) 和 Google App Engine的麻烦。我在 GWT / GAE 上遇到了类似的问题(未找到 SAXParserFactoyImpl)并通过以下方式解决了它;

  1. 将jar导入war/WEB-INF/lib
  2. 将 jar 添加到构建路径
于 2013-02-19T18:59:12.680 回答