代码之家  ›  专栏  ›  技术社区  ›  Templar

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

  •  8
  • Templar  · 技术社区  · 15 年前

    我创造了一个 GWT 使用Eclipse的项目运行良好(我可以在托管模式和Google应用引擎上运行它),直到我尝试导入 Gears API for Google Web Toolkit . 在将以下行添加到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中引用它,如下所示:

    Java Build Path in Eclipse http://i41.tinypic.com/148klk4.png

    我甚至打开了gwt-gears.jar文件,并确认org/apache/xerces/jaxp/saxparserfactoryimpl.class确实存在。有人能告诉我为什么会出现上述错误吗?

    6 回复  |  直到 11 年前
        1
  •  5
  •   Jonathan Holloway    15 年前

    检查Xerces是否存在于:

    $JAVA_HOME/lib/endorsed
    

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

    javax.xml.parsers.SAXParserFactory
    

    应该是:

    org.apache.xerces.jaxp.SAXParserFactoryImpl
    

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

        2
  •  2
  •   Community leo1    7 年前

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

    Eclipse Installed JREs http://i40.tinypic.com/15fktvd.png

    多亏了 Jon Rahul 因为我指向了正确的方向。

        3
  •  1
  •   Roland    14 年前

    这件事发生在我身上。我的工作区有相互冲突的罐子。我取下一个,然后用吊杆把它吊起来。这条消息并不能很好地解释错误的根源。

        4
  •  1
  •   Alex    14 年前

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

        5
  •  0
  •   Isaiah    14 年前

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

        6
  •  0
  •   Community leo1    7 年前

    看一看 Trouble with Selenium (XercesImpl) and Google App Engine . 我对GWT/GAE也有类似的问题(找不到saxparserfactoyimpl),并通过解决了这个问题;

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