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

Tem*_*lar 8 java gwt xerces

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

import com.google.gwt.gears.client.geolocation.Geolocation;
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

Eclipse中的Java构建路径http://i41.tinypic.com/148klk4.png

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

Jon*_*Jon 5

检查Xerces是否存在于:

$JAVA_HOME/lib/endorsed
Run Code Online (Sandbox Code Playgroud)

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

javax.xml.parsers.SAXParserFactory
Run Code Online (Sandbox Code Playgroud)

它应该是:

org.apache.xerces.jaxp.SAXParserFactoryImpl
Run Code Online (Sandbox Code Playgroud)

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


Tem*_*lar 2

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

Eclipse 安装的 JRE

感谢乔恩胡尔为我指明了正确的方向。