WorldWind APIを使用してアプリケーションを作成する作業が行われていて、APIを理解するために「HelloWorldWind」サンプルアプリケーションを実行しようとしました。私が行うとき、私は次のエラー・スタックを取得:例WorldWindアプリケーションの起動時にAbstractMethodErrorが発生する
public static DocumentBuilder createDocumentBuilder(boolean isNamespaceAware)
{
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setNamespaceAware(isNamespaceAware);
if (Configuration.getJavaVersion() >= 1.6)
{
try
{
docBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",
false); // Not getting past here
}
catch (ParserConfigurationException e)
{ // Note it and continue on. Some Java5 parsers don't support the feature.
String message = Logging.getMessage("XML.NonvalidatingNotSupported");
Logging.logger().finest(message);
}
}
...
Reading some stuff online、人々は私が64ビットシステム上で実行していることから、jogl
を非難している、しかし、次のように
Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
at gov.nasa.worldwind.util.WWXML.createDocumentBuilder(WWXML.java:61)
at gov.nasa.worldwind.util.WWXML.openDocumentStream(WWXML.java:236)
at gov.nasa.worldwind.util.WWXML.openDocumentStream(WWXML.java:223)
at gov.nasa.worldwind.util.WWXML.openDocumentFile(WWXML.java:175)
at gov.nasa.worldwind.util.WWXML.openDocument(WWXML.java:148)
at gov.nasa.worldwind.Configuration.loadConfigDoc(Configuration.java:131)
at gov.nasa.worldwind.Configuration.<init>(Configuration.java:108)
at gov.nasa.worldwind.Configuration.<clinit>(Configuration.java:76)
at gov.nasa.worldwindx.examples.HelloWorldWind.main(HelloWorldWind.java:
WWXML.createDocumentBuilder
です私はすでにビルドパスに必要なジャーを持っています。
さらに、上記のURLをブラウザで試してみると404ページが返され、原因と思われるかもしれません。
URLは一部の環境設定を書式設定するための手段に過ぎません。私はDocumentBuilderFactory.setFeature
のソースを持っていないので、そこで何がうんざりしているのか分かりません。
私の問題は実際にはjogl
などですか?
:javaの上に完全な方法がある
:
で'DocumentBuilderFactory.newInstance()'から、それは 'DocumentBuilderFactoryImpl'です。 'setFeature'メソッドは明らかに実装されており、[this](http://grepcode.com/file/repo1.maven.org/maven2/xerces/xercesImpl/2.11.0/org/apache/xerces/jaxp/)によると、 DocumentBuilderFactoryImpl.java#DocumentBuilderFactoryImpl.setFeature%28java.lang.String%2Cboolean%29)、そこに 'AbstractMethodError'をスローするものはありません。 – MBraedley
@MBraedleyロードされているxercesのバージョンを確認する必要があります。これを行うには、MyClass.class.getClassLoader()。getResource( "org/apache/xerces/jaxp/DocumentBuilderFactoryImpl.class");を呼び出し、結果のURLを出力します。関連するクラスを 'MyClass.class'に置き換えます。 'HelloWorldWind.class'はおそらく実行します。うまくいけば、URLで示されたjarファイルを調べて、それが何歳であるかを調べることができます。 – Dev
使用されているjarはWorldWindバージョン2.5.0に付属しているものですので、おそらく動作するはずです。私はWorldWindフォーラムでこれが問題であるとの兆候は見られません。 – MBraedley