将Spring Roo与JSF 2.0+Primefaces组合时出现的问题



我在DZone上发现了这个很酷的帖子:

我想试一试。我一步一步地按照这个例子做,它对我来说很好。在不到5分钟的时间里,我就完成了网络应用程序的描述并运行。

我决定创建自己的应用程序只是为了好玩。但它没有起作用,我也不知道为什么会起作用。我相信我做每件事的方式都完全一样,只是使用了我自己的变量名。以下是我所做的每一件事:

1-从我的linux终端,创建一个文件夹并导航到它

mkdir whatsup
cd whatsup

2-我启动了roo shell开始工作(我的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:hsqldb:1.8.0.10,org.hibernate:hibernate核心:3.6.9.最终,org.hibernate:hibernate实体管理器:3.6.9.最终,org.hibernate。javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final,org.hibernate:hibernate验证器:4.2.0.Final,javax.validation:validation-api:1.0.0.GA,cglib:cglib-nodep:2.2.2,事务:jta:1.1,org.springframework:spring-jdbc:${spring.version},org.springframework:spring-orm:${spring.version},commons pool:commons pool: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_Roo_ToString.aj已创建SRC_MAIN_JAVA.com/hack/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.JAVASRC_MAIN_JAVA.com/hack/domain/Message_Roo_JavaBean.aj

7-将web层包括到我的项目

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

创建的ROOT/src/main/webapp创建的ROT/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/e.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已创建ROOT/src/main/webapp/templates/menu.xhtml已创建ROOT/src/main/webapp/pages已创建ROOT/src/main/webapp/pages/main.html已更新ROOT/pom.xml[已添加dependencies.org.apache.myfaces.core:myfaces-api:2.1.5,org.apache.myfaces.core:myfaces impl:2.1.5,org.primefaces:primefaces:3.1,主题:南街:1.0.3,org.springframework:spring-web:${spring.version},javax.el:el-api:2.2,commons fileupload:commons fileupload:1.2.2,公地io:公地io:2.1;添加的存储库http://repository.primefaces.org;添加的依赖项org.primefaces。主题:胡椒研磨机:1.0.3;已将项目类型更新为war]已创建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/ack/jsf/i18n/messages_de.properties已创建ROOT/src/main/resources/com/ack/jsf/i18n/messages_en.properties已创建ROOT/src/main/resources/com/ack/jsf/i18n/messages_es.properties已创建SRC_MAIN_JAVA.com/hack/jsf已创建SRC_MAIN_JAVA.com/hack/jsf/MessageBean.JAVA已创建SRC_MAIN_JAVA.com/hack/jsf/converter已创建SRC_MAIN_JAVA.com/hack/jsf/converter/MessageConverter.JAVA已创建SRC_MAIN_WEBAPP/WEB-INF/faces-config.xml已创建SRC_MAIN_JAVA.com/hack/jsf/ApplicationBean.JAVA已创建SRC_MAIN_JAVA.com/hack/jsf/util已创建SRC_MAIN_JAVA.com/hack/jsf/util/LocaleBean.JAVA已创建SRC_MAIN_JAVA.com/hack/jsf/util/ViewExpiredExceptionExceptionHandlerFactory.JAVA已创建SRC_MAIN_JAVA.com/hack/jsf/util/ViewExpiredExceptionHandler.JAVA创建SRC_MAIN_WEBAPP/pages/message.xhtml创建SRC_MAIN_JAVA.com/hack/jsf/ApplicationBean_Roo_ApplicationBean.aj已创建SRC_MAIN_JAVA.com/hack/jsf/ApplicationBean_Roo_Configurable.aj已创建SRC_MAIN_JAVA.com/hack/jsf/converter/MessageConverter_Roo_converter.aj已创建SRC_MAIN_JAVA/com/hack/jsf/converter/MessageConverter_Roo_Configurable.aj已创建SRC_MAIN_6JAVA/com/rack/jsf/MessageBean_Roo_Serializable.aj已创建SRC_MAIN_JAVA.com/hack/jsf/MessageBean_Roo_Configurable.aj已创建SRC_MAIN_JAVA.com/hack/jsf/MessageBean_Roo_ManagedBean.aj

9-退出roo shell

~.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]正在扫描项目。。。[信息]
[信息]------------------------------------------------------------------------[信息]正在构建0.1.0。BUILD-NAPSHOT[信息]------------------------------------------------------------------------正在下载:http://xxx.xx.xx.xx:8081/nexus/content/groups/public/org/primefaces/themes/pepper-研磨机/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 KB/秒)正在下载:http://xxx.xx.xx.xx:8081/nexus/content/groups/public/org/primefaces/themes/pepper-研磨机/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 KB,155.3 KB/秒)[INFO][INFO]---aspectj maven插件:1.2:compile(默认)@whats-up---[ERROR]方法findAllMessages()对于类型Message未定义[ERROR]类型不匹配:无法从消息转换为消息[ERROR]类型不匹配:无法从Message转换为Message[ERROR]方法类型String的getId()未定义[ERROR]方法merge()为类型String的未定义[ERROR]方法persist()为中定义的String[WARNING]建议类型未定义org.springframework.org.jpa.aspectj.JpaExceptionTranslatorAspect具有未应用[Xlint:adviceDidNotMatch][WARNING]中定义的建议org.springframework.mock.staticsmock.AnnotationDrivenSticEntityMockingControl尚未应用[Xlint:adviceDidNotMatch][警告]建议定义于org.springframework.mock.staticsmock.AbstractMethodMockingControl具有未应用[Xlint:adviceDidNotMatch][WARNING]中定义的建议org.springframework.mock.staticsmock.AbstractMethodMockingControl具有未应用[Xlint:adviceDidNotMatch][WARNING]中定义的建议org.springframework.scheduling.aspectj.AbstractAsyncExecutionAspect尚未应用[Xlint:adviceDidNotMatch][INFO]------------------------------------------------------------------------[INFO]生成失败[INFO]------------------------------------------------------------------------[信息]总时间:15.525秒[信息]完成时间:1月7日星期一17:56:26 GMT2013【信息】最终内存:6M/125M【信息】------------------------------------------------------------------------[错误]无法执行目标org.codehaus.mojo:aspectj-maven插件:1.2:compile(默认)on项目进展:编译器错误:[ERROR]错误在allMessages=Message.findAllMessages();[错误]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:72:0::0方法findAllMessages()对于类型Message[ERROR]未定义message=new message()处出错;[ERROR][ERROR]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:198:0::0类型不匹配:无法从消息转换为消息[ERROR]错误,位于message=新消息();[错误]^^^^[错误]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:226:0::0类型不匹配:无法从消息转换为消息[ERROR]错误,位于if(message.getId()!=null){[ERROR][ERROR]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:233:0::0方法getId()未定义为处的类型String[ERROR]错误message.merge();[ERROR][ERROR]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:234:0::0处的String[ERROR]错误类型的方法merge()未定义message.persist();[ERROR][ERROR]/home/cleanuser/hackday/whatsup/src/main/java.com/hack/jsf/MessageBean_Roo_ManagedBean.aj:237:0::0方法persist()对于类型String[ERROR]->[Help未定义1] [ERROR][ERROR]若要查看错误的完整堆栈跟踪,请重新运行带-e开关的Maven。[错误]使用-X开关重新运行Maven启用完整的调试日志记录。[ERROR][ERROR]有关的详细信息错误和可能的解决方案,请阅读以下文章:[错误][帮助1]http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我不知道如何让它工作。正如你所看到的,我的步骤与DZone教程完全相同,我不知道有什么不同。有趣的是,他们的例子行得通,但我的例子不行。

我也尝试过,但没有运气:mvn clean install这将给我一个BUILD SUCCESS,但无法在服务器上运行mvn tomcat:run与其他命令的结果相同

如果周围有人有将Spring RooJSF结合使用的经验,我将不胜感激。

看起来"Message"与自动生成的代码使用的某个名称冲突。你会用"MyMessage"试试吗?

相关内容

  • 没有找到相关文章

最新更新