Для проекта, над которым я работаю и зависит от vaadin-6.8.12, я хотел бы использовать классы Page/JavaScript, включенные в JAR-файл vaadin-server-7.0.6.
Однако, когда я включаю vaadin-server, я получаю java.lang.VerifyError при попытке использовать метод Page.getCurrent().
Чтобы проиллюстрировать это, я написал небольшую тестовую программу, которая демонстрирует такое же поведение:
import com.vaadin.server.Page;
public class Main
{
public static void main(String[] args)
{
Page page = Page.getCurrent();
System.out.println(page);
}
}
Я установил путь к классам в файле (файлы JAR и Main.class находятся в одной папке):
vaadin-6.8.12.jar:vaadin-server-7.0.6.jar:vaadin-shared-7.0.6.jar:vaadin-
shared-deps-1.0.2.jar:vaadin-theme-compiler-7.0.6.jar
Затем запустите программу следующим образом:
java -cp $(cat vaadin.classpath):. Main
При запуске получаю следующую ошибку:
Exception in thread "main" java.lang.VerifyError: (class:
com/vaadin/server/Page, method: getJavaScript signature:
()Lcom/vaadin/ui/JavaScript;) Incompatible argument to function
at Main.main(Main.java:7)
Однако, если я изменю порядок vaadin-6.8.12 и vaadin-server-7.0.6, я не получу ошибку java.lang.VerifyError.
Я пробовал один и тот же тест для разных версий vaadin и vaadin-server, всегда с тем же результатом, что и выше.
vaadin не указан как зависимость от vaadin-server (и наоборот) в POM maven. Я использую JDK версии 1.6.0_32. Кто-нибудь знает, что может быть причиной этого?
Большое спасибо.
@JavaScript
будет работать между 6 и 7, вы можете принять вызов... - person cfrick   schedule 03.02.2015