Я имею следующее, очень простой код в приложение Java, которое я бегу под Tomcat 7 и OpenJDK Java 1,7Java-приложение идет в никуда - У меня проблема с версией?
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, программа просто переходит на землю без права собственности, и запрос проглатывается.
Я начал Tomcat в режиме отладки, чтобы удаленно отлаживать приложение из моего Eclipse. В результате он достигает .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 здесь, хотя я не уверен, где эта проблема. Возможно ли, что мое приложение создается с помощью неправильного компилятора здесь?
Любая идея, как я могу решить эту проблему?
Update:
Последнее сообщение в /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
Вы пытались поставить LOG перед вызовом '.getAnnotation()' в компараторе? Просто чтобы убедиться, что это не тот метод, который «висит», и фактически вводится код-компаратор. – Fildor