私はTomcatの7とのOpenJDK Javaの下に1.7Javaアプリケーションはどこにも行きません - 私はバージョニングの問題がありますか?
を私が実行しているJavaアプリケーションでは、次の、非常に簡単なコードを持っていますList<AnnotationNode> children = parent.getChildren();
LOGGER.debug("sorting ...");
children.sort(new Comparator<AnnotationNode>() {
@Override
public int compare(AnnotationNode o1, AnnotationNode o2) {
int result;
try {
Annotation a1 = o1.getAnnotation();
Annotation a2 = o2.getAnnotation();
LOGGER.debug("compare ..");
result = a1.getStart() - a2.getStart();
} catch(Exception e) {
LOGGER.debug("huh??", e);
result =0;
}
return result;
}
});
それらLOGGER
メッセージを許しなさいそれは私がダウンして追跡するための唯一の方法でした問題の起源私がGET要求を実行している間、プログラムは単に人の土地には入らず、要求は飲み込まれています。
Eclipseからアプリケーションをリモートでデバッグするために、Tomcatをデバッグモードで起動しました。結果は.sort()
に達しますが、compare()
の実装には決して達しません。したがって、私が受け取っている最後のデバッグメッセージはsorting ...
であり、それだけです。
私は、Java 8は
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
がインストールされているが、親のpom.xmlは、Java 7のために設定されているから、これを展開しています機械:私は問題を抱えているよう
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<!-- etc. -->
</plugins>
</build>
はこれが見えますこの問題がどこで発生するのかわかりませんが、ここにJavaバージョンがあります。私のアプリケーションが間違ったコンパイラで構築されている可能性はありますか?
どうすればこの問題を解決できますか?
更新:
/var/log/tomcat7/catalina.out
の最後のメッセージは言う:
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoSuchMethodError: java.util.List.sort(Ljava/util/Comparator;)V
at at.company.enrichment.processor.AnnotatedDocumentTree.addNode(AnnotatedDocumentTree.java:104)
at at.company.enrichment.processor.AnnotatedDocumentTree.initialize(AnnotatedDocumentTree.java:70)
at at.company.enrichment.processor.AnnotatedDocumentTree.<init>(AnnotatedDocumentTree.java:41)
at at.company.enrichment.processor.DocumentProcessor2.process(DocumentProcessor2.java:112)
は、なぜ私はここにNoSuchMethodError
例外を取得していますか?
"...人は土地には行きません" - あなたはタイムアウトに遭っていますか?そのリストはどれくらいの大きさですか? – Fildor
@Fildorリストはかなり小さいので、あまりにも長い時間がかかることは間違いありません。 – displayname
比較器に '.getAnnotation()'を呼び出す前にLOGを入れてみましたか?ちょうどそれが "ぶら下がっている"というメソッドではなく、実際に比較文字コードが入力されていることを確認してください。 – Fildor