Проблемы при объединении Spring Roo с JSF 2.0 + Primefaces

Я нашел этот классный пост на DZone:

Я хотел попробовать. Я последовал примеру шаг за шагом, и он отлично сработал. Менее чем за 5 минут я запустил это веб-приложение и запустил его.

Я решил создать собственное приложение просто для удовольствия. Но это не сработало, и я понятия не имею, почему это так. Я уверен, что я сделал все точно так же, но только используя свои собственные имена переменных. Вот все, что я сделал:

1- Из моего терминала Linux, создал папку и перешел к ней

mkdir whatsup
cd whatsup

2- Я запустил оболочку roo, чтобы начать работать (мой ROO_HOME настроен правильно)

/roo.sh

   / __ \/ __ \/ __ \ 
  / /_/ / / / / / / / 
 / _, _/ /_/ / /_/ /  
/_/ |_|\____/\____/    1.2.1.RELEASE [rev 6eae723]


Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.

3- Я создал определение проекта

roo> project --topLevelPackage com.hack --projectName whats-up
Created ROOT/pom.xml
Created SRC_MAIN_RESOURCES
Created SRC_MAIN_RESOURCES/log4j.properties
Created SPRING_CONFIG_ROOT
Created SPRING_CONFIG_ROOT/applicationContext.xml

4- Я включил персистентный слой

roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

Создан SPRING_CONFIG_ROOT/database.properties Обновлен SPRING_CONFIG_ROOT/applicationContext.xml. Создан SRC_MAIN_RESOURCES/META-INF/persistence.xml. Обновлен ROOT/pom.xml [добавлены зависимости org.hsqldb:hs..9.Final, org.hibernate:hibernate-entitymanager:3.6.9.Final, org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final, org.hibernate:hibernate-validator:4.2.0.Final, javax.validation:validation-api:1.0.0.GA, cglib:cglib-nodep:2.2.2, javax.transaction:jta:1.1, org.springframework:spring-jdbc:${spring.version}, org.springframework:spring-orm:${spring.version}, пул commons: пул commons: 1.5.6, commons-dbcp: commons-dbcp: 1.3]

5- Я создал свою первую сущность

roo> entity jpa --class ~.domain.Message

Создано SRC_MAIN_JAVA/com/hack/domain Создано SRC_MAIN_JAVA/com/hack/domain/Message.java Создано SRC_MAIN_JAVA/com/hack/domain/Message_Roo_Configurable.aj Создано SRC_MAIN_JAVA/com/hack/domain / Message_JA_A /domain/Message_Roo_Jpa_ActiveRecord.aj Создано SRC_MAIN_JAVA/com/hack/domain/Message_Roo_Jpa_Entity.aj

6- Я добавил поля к сущности

~.domain.Message roo> field number --fieldName votes --type java.lang.Integer --notNull

Обновлено SRC_MAIN_JAVA/com/hack/domain/Message.java Создано SRC_MAIN_JAVA/com/hack/domain / Message_Roo_JavaBean.aj

7- Включить веб-слой в мой проект

~.domain.Message roo> web jsf setup --implementation APACHE_MYFACES --theme PEPPER_GRINDER

Создан ROOT/src/main/webapp Создан ROOT/src/main/webapp/index.html Создан ROOT/src/main/webapp/viewExpired.xhtml Создан ROOT/src/main/webapp/resources/images Создан ROOT/src/main/webapp/resources/images/csv.png
Создан com.hack.jsf.converter.MessageConverter Создан ROOT/src/main/webapp/resources/images/de.png Создан ROOT/src/main/webapp/resources/images/en.png Создан ROOT/src/main/webapp/resources/images/es.png Создан ROOT/src/main/webapp/resources/images/excel.png Создан ROOT/src/main/webapp/resources/images/favicon.ico Создан ROOT/src/main/webapp/resources/images/pdf.png Создан ROOT/src/main/webapp/resources/images/roo_logo.png Создан ROOT/src/main/webapp/resources/images/springsource-logo.png Создан ROOT/src/main/webapp/resources/images/xml.png Создан ROOT/src/main/webapp/resources/css Создан ROOT/src/main/webapp/resources/css/standard.css Создан ROOT/src/main/webapp/resources/js Создан ROOT/src/main/webapp/resources/js/calendar.js Создано ROOT/src/main/webapp/templates Создано ROOT/src/main/webapp/templates/content.xhtml Создано ROOT/src/main/webapp/templates/footer.xhtml Создан ROOT/src/main/webapp/templates/header.xhtml Создан ROOT/src/main/webapp/templates/layout.xhtml C ROOT/src/main/webapp/templates/menu.xhtml Создан ROOT/src/main/webapp/pages Создан ROOT/src/main/webapp/pages/main.xhtml Обновлен ROOT/pom.xml [добавлены зависимости org.apache.myfaces.core:myfaces-api:2.1.5, org.apache.myfaces.core:myfaces-impl:2.1.5, org.primefaces:primefaces:3.1, org.primefaces.themes:south-street:1.0.3, org.springframework:spring-web:${spring.version}, javax.el:el-api:2.2, commons-fileupload:commons-fileupload:1.2.2, commons-io:commons-io:2.1; добавлен репозиторий http://repository.primefaces.org/; добавлена ​​зависимость org.primefaces.themes: мельница для перца:1.0.3; обновлен тип проекта до войны] Создано SRC_MAIN_WEBAPP/WEB-INF Создано SRC_MAIN_WEBAPP/WEB-INF / web.xml

8- Я выполнил посылку

~.domain.Message roo> web jsf all --package ~.jsf

Создан ROOT/src/main/resources/com/hack/jsf/i18n Создан ROOT/src/main/resources/com/hack/jsf/i18n/messages_de.properties Создан ROOT/src/main/resources/com/hack/jsf/i18n/messages_en.properties Создано ROOT/src/main/resources/com/hack/jsf/i18n/messages_es.properties Создано SRC_MAIN_JAVA/com/hack/jsf Создано SRC_MAIN_JAVA/com/hack/jsf/ SRB_JB_AIN_JA_IN_JA_IN_JAJ.JB /hack/jsf/converter Создано SRC_MAIN_JAVA/com/hack/jsf/ converter / MessageConverter.java Создано SRC_MAIN_WEBAPP/WEB-INF/face-config.xml Создано SRC_MAIN_JAVA/com/hack/jsf/ApplicationBean.jIN_CaJJ_JA /jsf/util Создано SRC_MAIN_JAVA/com/hack/jsf/util/LocaleBean.java Создано SRC_MAIN_JAVA/com/hack/jsf/util/ViewExpiredExceptionExceptionHandlerFactory.java Создано SRC_MAIN_JAVA / com / util_Ex_Exception_Exp. /message.xhtml Создано SRC_MAIN_JAVA/com/hack/jsf/ ApplicationBean_Roo_ApplicationBean.aj Создано SRC_MAIN_JAVA/com/hack/jsf/ Applica ionBean_Roo_Configurable.aj Создано SRC_MAIN_JAVA/com/hack/jsf/ преобразователь /MessageConverter_Roo_Converter.aj Создано SRC_MAIN_JAVA/com/hack/jsf/ конвертер /MessageConverter_Roo_Configurable.aj / созданное_компонентная_исследованная_исследовательская_исследовательская_исследовательская_исследовательская область jsf / MessageBean_Roo_Configurable.aj Создано SRC_MAIN_JAVA/com/hack/jsf/ MessageBean_Roo_ManagedBean.aj

9- Выход из оболочки

~.jsf roo> quit

10- В терминале linux из проекта я выполнил команду, предложенную в учебнике, для выполнения в tomcat 7

~/hackday/whatsup$ mvn package org.codehaus.cargo:cargo-maven2-plugin:run -Dcargo.maven.containerId=tomcat7x -Dcargo.maven.containerUrl=http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.zip

Это был выход при попытке запустить:

[INFO] Сканирование проектов... [INFO]
[ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [INFO] Сборка Whats-Up 0.1.0.BUILD-SNAPSHOT [INFO] ------------------------------------------------------------------------ Скачивание: http://xxx.xx.xx.xx:8081/nexus/content/groups/public/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom Загрузка: http://maven.springframework.org/release/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom Загрузка: http://maven.springframework.org/milestone/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom Загрузка: http://spring-roo-repository.springsource.org/release/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom Загрузка: http://repository.primefaces.org/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom Загружено: http://repository.primefaces.org/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom (636 B в 3,3 КБ / с) Загрузка: http: //xxx.xx.xx. http://xxx.xx.xx.xx:8081/nexus/content/groups/public/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar Скачивание: http://maven.springframework.org/release/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar Загрузка: http://maven.springframework.org/milestone/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar Загрузка: http://spring-roo-repository.springsource.org/release/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar Скачивание: http://repository.primefaces.org/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar Скачано: http://repository.primefaces.org/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.jar (69 КБ при 155,3 КБ / с) [INFO] [INFO] --- aspectj-maven-plugin:1.2:compile (по умолчанию) @ whats-up --- [ОШИБКА] Метод findAllMessages() не определен для типа Сообщение [ОШИБКА] Несоответствие типов: невозможно преобразовать из сообщения в сообщение [ОШИБКА] Несоответствие типов: невозможно преобразовать из сообщения в M essage [ОШИБКА] Метод getId() не определен для типа String [ОШИБКА] Метод merge() не определен для типа String [ОШИБКА] Метод persist() не определен для типа String [WARNING] рекомендация, определенная в org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect не был применен [Xlint:adviceDidNotMatch] [WARNING] рекомендация, определенная в org.springframework.mock.staticmock.AnnotationDrivenStaticEntityMockingControlMC не был применен.springframework.mock.staticmock.AbstractMethodMockingControl не был применен [Xlint:adviceDidNotMatch] [WARNING] рекомендация, определенная в org.springframework.mock.staticmock.AbstractMethodMockingControl, не была применена [WARNRING] не определено.scheduling.aspectj.AbstractAsyncExecutionAspect не был применен [Xlint:adviceDidNotMatch] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [ИНФО] Общее время: 15,525 с [ИНФО] Окончание: пн. Янв. 07 17:56:26 GMT 2013 [INFO] Конечная память: 6M/125M [INFO] ------------------------------------------------------------------------ [ОШИБКА] Не удалось выполнить цель org.codehaus.mojo:aspectj-maven-plugin:1.2: компиляция (по умолчанию) при проверке проекта: ошибки компилятора: ошибка [ERROR] at allMessages = Message.findAllMessages(); [ОШИБКА] ^^^^^^ [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:72:0::0 метод findAllMessages() не определен для типа Сообщение [ОШИБКА] ошибка в сообщении = новое сообщение (); [ОШИБКА] [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:198:0::0 несоответствие типов: невозможно преобразовать из сообщения в сообщение [ошибка] в сообщении = новое сообщение (); [ОШИБКА] ^^^^ [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:226:0::0 несоответствие типов: невозможно преобразовать из сообщения в сообщение Ошибка [ОШИБКА] в if (message.getId()!= Null) { [ОШИБКА] [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:233:0::0 Метод getId() не определен для ошибки типа String [ERROR] в message.merge(); [ОШИБКА] [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:234:0::0 Метод merge() не определен для типа String [ERROR ] ошибка в message.persist(); [ОШИБКА] [ОШИБКА] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:237:0::0 Метод persist() не определен для типа String [ERROR] -> [Справка 1] [ОШИБКА] [ОШИБКА] Чтобы увидеть полную трассировку стека ошибок, перезапустите Maven с ключом -e. [ОШИБКА] Перезапустите Maven, используя ключ -X, чтобы включить полное ведение журнала отладки. [ОШИБКА] [ОШИБКА] Для получения дополнительной информации об ошибках и возможных решениях, пожалуйста, прочитайте следующие статьи: [ОШИБКА] [Помощь 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Я не знаю, как заставить это работать. Как вы можете видеть, мои шаги точно такие же, как в учебнике по DZone, я не знаю, что отличается. Интересно, что их пример работает, а мой нет.

Тоже попробовал без удачи mvn clean install Это даст мне BUILD SUCCESS, но не сможет запустить его на сервере. mvn tomcat:run Тот же результат, что и с другой командой

Если есть кто-то с опытом использования Spring Roo в комбинации с JSF Я ценю некоторую помощь.

1 ответ

Решение

Похоже, что "Сообщение" конфликтует с некоторым именем, используемым автоматически сгенерированным кодом. Вы бы попробовали это, скажем, с "MyMessage"?

Другие вопросы по тегам