Сложность при импорте примера приложения Vaadin SimpleCRM для локальной разработки

У меня возникли проблемы с импортом примера приложения SimpleCRM (vaadin-jpa-app), найденного в конце сообщения в блоге Vaadin под названием «Рецепт создания полнофункционального интернет-приложения, ориентированного на данные» 20 января (Ссылка: https://vaadin.com/blog/-/blogs/a-recipe-for-a-data-centric-rich-internet-application)

После клонирования репозитория с помощью git https://hub.jazz.net/git/vaadin/vaadin-jpa-app, как описано в README.md, я попытался импортировать проект как проект Maven в Eclipse Luna, но, к сожалению, получил следующие ошибки, связанные с файлом pom.xml:

vaadin-maven-plugin: 7.3.7: ресурсы vaadin-maven-plugin: 7.3.7: тема обновления vaadin-maven-plugin: 7.3.7: update-widgetset

Я все равно попытался развернуть приложение на моем сервере WebSphere Liberty Profile Server, но получил ошибку «Корень контекста не найден».

Я также заметил, что в моем файле server.xml в профиле WebSphere Application Server Liberty Profile я вижу предупреждения, в которых упоминается, что элементы «jdbcDriver» и «dataSource» «не включены доступными функциями» после копирования соответствующего кода, указанного в разделе « Локальная разработка "README.md (из https://hub.jazz.net/project/vaadin/vaadin-jpa-app/overview)

Может ли кто-нибудь, более знакомый с этим процессом, объяснить мне, что мне следует делать? Это будет высоко ценится. Спасибо!

(Начать процедуру)

Подготовка:

1) В Eclipse я установил WebSphere Application Server Liberty Profile через Eclipse Marketplace (http://marketplace.eclipse.org/content/ibm-websphere-application-server-liberty-profile-developer-tools-luna-0)

2) В Enterprise Explorer в Eclipse в WebSphere Application Server Liberty Profile | серверы | defaultServer | server.xml, я добавил фрагмент конфигурации драйвера JDBC, как описано в Readme. Я также изменил код в соответствии с опубликованным вами фрагментом.

3) Я добавил файл derby.jar в соответствующий каталог, как указано в Readme

4) Я установил коннектор m2e-wtp (http://marketplace.eclipse.org/content/maven-java-ee-integration-eclipse-wtp-luna)

5) Используя Git Shell, я git clone https://hub.jazz.net/git/vaadin/vaadin-jpa-app

Развертывание приложения:

6) Затем в Eclipse я импортирую каталог vaadin-jpa-app, который я только что клонировал как «Существующий проект Maven». Это создает проект vaadin-jpa-app, а также проект vaadin-jpa-applicationEAR в Eclipse Enterprise Explorer.

7) На этом этапе три «ошибки», которые я описал ранее, исправляются путем выбора «Не выполнять (добавить в pom)» в качестве действия для каждой из «ошибок». (Описание: размещает метаданные, которые говорят m2e игнорировать выполнение в pom (-ах), которые добавляют плагин Maven в сборку.)

8) Я щелкаю правой кнопкой мыши проект «vaadin-jpa-application [vaadin-jpa-app master]» и выбираю «Запуск от имени» | Maven Установить.

9) Я щелкаю правой кнопкой мыши проект «vaadin-jpa-application [vaadin-jpa-app master]» и выбираю «Запуск от имени» | Запуск на сервере.

10) Я выбираю WebSphere Application Server Liberty Profile в разделе localhost и проверяю, что только vaadin-jpa-application (а не vaadin-jpa-applicationEAR) находится в столбце «Configured:». Это приводит к ошибке 404.

(Начать вывод в консоль)

Launching defaultServer (WebSphere Application Server 8.5.5.4/wlp-1.0.7.cl50420141211-1039) on Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_25-b18 (en_US)
[AUDIT   ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT   ] CWWKZ0058I: Monitoring dropins for applications. 
[ERROR   ] SRVE9990E: The class org.vaadin.presentation.Servlet has a @WebServlet annotation but does not implement the javax.servlet.http.HttpServlet interface.
[ERROR   ] SRVE9991E: The class org.vaadin.presentation.CompressionFilter has a @WebFilter annotation but does not implement the javax.servlet.Filter interface.
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWNEN0049W: Resource annotations on the methods of the org.vaadin.backend.CustomerService class will be ignored. The annotations could not be obtained because of the exception : <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[ERROR   ] CNTR4006E: The CustomerService enterprise bean in the vaadin-jpa-application.war module of the vaadin-jpa-application application failed to start. Exception: <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform0(PCClassFileTransformer.java:164)
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform(PCClassFileTransformer.java:126)
    at org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl.transform(PersistenceProviderImpl.java:290)
    at com.ibm.ws.jpa.management.JPAPUnitInfo.transformClass(JPAPUnitInfo.java:1380)
    at [internal classes]
Caused by: java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2575)
    at java.lang.Class.getDeclaredFields(Class.java:1908)
    at org.apache.openjpa.lib.util.J2DoPrivHelper$7.run(J2DoPrivHelper.java:297)
    at org.apache.openjpa.lib.util.J2DoPrivHelper$7.run(J2DoPrivHelper.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineImplicitAccessType(PersistenceMetaDataDefaults.java:366)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineAccessType(PersistenceMetaDataDefaults.java:334)
    at org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:276)
    at org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:920)
    at org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:905)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:752)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:545)
    at org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:415)
    at org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:260)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:586)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:396)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:388)
    at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:286)
    at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:257)
    at org.apache.openjpa.enhance.PCClassFileTransformer.transform0(PCClassFileTransformer.java:146)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: Could not find class 'com.vividsolutions.jts.geom.Point' as resource 'com/vividsolutions/jts/geom/Point.class'
    ... 29 more

[AUDIT   ] CWWKT0016I: Web application available (default_host): http://localhost:9080/vaadin-jpa-application/
[AUDIT   ] CWWKZ0001I: Application vaadin-jpa-application started in 4.171 seconds.
[AUDIT   ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWNEN0049W: Resource annotations on the methods of the org.vaadin.backend.CustomerService class will be ignored. The annotations could not be obtained because of the exception : <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.util.GeneralException: Lcom/vividsolutions/jts/geom/Point;
[WARNING ] CWWJP9991W: openjpa.Enhance: Warn: An exception was thrown while attempting to perform class file transformation on "org.vaadin.backend.domain.Customer":
      Exception : java.lang.NoClassDefFoundError
    java.lang.NoClassDefFoundError: Lcom/vividsolutions/jts/geom/Point;

person DSunnyD    schedule 11.02.2015    source источник


Ответы (1)


При запуске убедитесь, что у вас установлена ​​установка eclipse, в которой не установлены дополнительные плагины и установлены последние версии плагина профиля свободы (или его бета-версии). Другие плагины eclipse могут помешать развертыванию.

Также убедитесь, что у вас установлена ​​последняя версия примера проекта (git pull). И Liberty, и Vaadin CDI быстро развивались за последние пару месяцев, и, возможно, были некоторые небольшие несовместимости.

"Ошибки" eclipse говорят о том, что eclipse не знает, как ему следует обрабатывать эти настройки сборки внутри. Вы можете просто пометить их, чтобы eclipse игнорировал их и выполнял полную сборку один раз (mvn install), чтобы скомпилировать ресурсы на стороне клиента.

Если Eclipse создает «проект уха» при импорте файла войны, просто удалите его и разверните только файл войны.

В server.xml вы должны включить необходимые функции. Приложению нужны сервлет, JPA, EBJ lite и CDI, но, вероятно, проще и почти так же легко просто включить весь материал веб-профиля java ee 6, это то, что я использую на своем сервере liberty почти всегда:

<!-- Enable features -->
<featureManager>
    <feature>localConnector-1.0</feature>
    <feature>webProfile-6.0</feature>
</featureManager>

Если у вас есть дерби-банка, как указано в инструкциях, и источник данных определен, все должно работать нормально. Сообщите мне, если проблема не исчезнет.

person mstahv    schedule 11.02.2015
comment
Привет, Матти! Большое спасибо за то, что нашли время помочь. Добавление фрагмента Enable features, который вы разместили в server.xml, действительно исправляет предупреждения, о которых я упоминал ранее. К сожалению, мне все еще не удается заставить программу правильно работать на моей установке. Я отредактировал свой исходный пост, включив в него пошаговое описание того, что я сделал до сих пор. Прошу прощения за многословие, но часть контекста может иметь отношение к тому, что мне нужно сделать. Возможно, я все еще что-то упускаю? - person DSunnyD; 12.02.2015
comment
Привет, тоже пробовал в eclipse, и теперь я вспоминаю, почему я предпочитаю NetBeans и IntelliJ в настоящее время :-) В то время как я был этим, я также немного обновил зависимости проектов, но я думаю, что это действительно была несовместимость плагина eclipse, которая вызвала у меня проблемы. Некоторые примечания: * Попробуйте со свежим eclipse, я думаю, что инструменты jboss и плагины liberty не работают вместе. * удалить проект уха, который создает затмение. EJB в проекте упакован в современном стиле в файл war и не требует упаковки для ушей * если все равно не повезло, попробуйте плагин liberty beta eclipse, который работал у меня - person mstahv; 13.02.2015
comment
Я новичок в переполнении стека, поэтому не знал, что комментарии не допускают форматирования. В ответ перенесено самое важное. Если у вас все еще не получается, напишите мне с [email protected], и я внимательно просмотрю это и сделаю видеоинструкцию, если это станет слишком сложно, этого на самом деле не должно быть. Если у вас установлен IntelliJ, я действительно рекомендую использовать его. - person mstahv; 13.02.2015
comment
Ха-ха, да, я предпочитаю NetBeans с плагином Vaadin, если честно. Я посмотрю, смогу ли я заставить его работать с NetBeans или IntelliJ, и сообщу вам о любом прогрессе, когда у меня будет возможность. Спасибо еще раз! - person DSunnyD; 13.02.2015
comment
Я думаю, что NetBeans не имеет такой хорошей поддержки Liberty, но с IntelliJ она работает хорошо. Мы действительно должны исправить настройку eclipse в любом случае, поэтому было бы неплохо, чтобы вы также могли попробовать новую установку и последнюю демо-версию приложения. - person mstahv; 13.02.2015
comment
Да! Мне удалось правильно запустить IntelliJ. Я попытался запустить его на новой установке Eclipse Luna SR1a с установленным только плагином Liberty Profile beta (январь 2015 г.), но он по-прежнему выдавал мне ошибку Context Root Not Found во время выполнения. - person DSunnyD; 13.02.2015
comment
Я также изменил свой пост, чтобы отображать консольное сообщение, которое я получаю при попытке запустить приложение. - person DSunnyD; 13.02.2015