2013-01-07 73 views
1

结合时,我发现DZone this凉后:问题的Spring Roo与JSF 2.0 + Primefaces

我想给它一个尝试。 我一步步跟着这个例子,它对我很好。在不到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, 有机hibernate:hibernate-core:3.6.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.spring框架:弹簧ORM:$ {} spring.version, 公共池:公共池:1.5.6,公地DBCP:公地DBCP:1.3]

5-我创造了我的第一个实体

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

创建SRC_MAIN_JAVA/COM /黑客/域中创建 SRC_MAIN_JAVA/COM /破解/域/ Message.java创建 SRC_MAIN_JAVA/COM /破解/域/ 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 /劈/域/ Message_Roo_Jpa_Entity.aj

6-我添加的字段到实体

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

更新SRC_MAIN_JAVA/COM /黑客/域/消息的.java创建 SRC_MAIN_JAVA/COM /黑客/域/ Message_Roo_JavaBean.aj

7-包括网络层到我的项目

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

创建的根/ src目录/主/ web应用程序创建的根/ src目录/主/ web应用/ index.html的 创建的根/ src目录/主/ web应用/ viewExpired.xhtml创建 ROOT/SRC /主/ web应用/资源/图像创建 ROOT/SRC /主/ web应用/资源/图像/ 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/r esource/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 /主/ 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/templates创建 ROOT/src/main/webapp/resources/js/calendar.js创建 RO OT/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.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-fileup load:commons-fileupload:1.2.2, commons-io:commons-io:2.1;添加存储库 http://repository.primefaces.org; org.primefaces.themes:胡椒研磨机: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 

创建的根/ src目录/主/资源/ COM /黑客/ JSF/i18n中创建 ROOT/src目录/主/资源/ COM /黑客/ JSF /国际化/ messages_de.properties 创建 ROOT/src目录/主/资源/ COM /黑客/ JSF /国际化/ messages_en.properties 创建 ROOT/src目录/主/资源/ COM /黑客/ JSF/i18n/messages_es.properties 创建SRC_MAIN_JAVA/COM /黑客/ JSF创建 SRC_MAIN_JAVA/COM /黑客/ JSF/MessageBean.java创建 SRC_MAIN_JAVA/COM /破解/ JSF /转换器创建 SRC_MAIN_JAVA/COM /破解/ JSF /转换器/ 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 /黑客/ JSF/UTIL/ViewExpiredExceptionExceptionHandlerFactory.java 创建 SRC_MAIN_JAVA/COM /黑客/ JSF/UTIL/ViewExpiredExceptionExceptionHandler.java创建SRC_MAIN_WEBAPP /页/ message.xhtml创建 SRC_MAIN_JAVA/COM /破解/ J SF/ApplicationBean_Roo_ApplicationBean.aj 创建SRC_MAIN_JAVA/COM /黑客/ JSF/ApplicationBean_Roo_Configurable.aj 创建 SRC_MAIN_JAVA/COM /破解/ JSF /转换器/ MessageConverter_Roo_Converter.aj 创建 SRC_MAIN_JAVA/COM /破解/ JSF /转换器/ MessageConverter_Roo_Configurable.aj创建SRC_MAIN_JAVA/COM /黑客/ JSF/MessageBean_Roo_Serializable.aj 创建SRC_MAIN_JAVA/COM /黑客/ JSF/MessageBean_Roo_Configurable.aj 创建SRC_MAIN_JAVA/COM /黑客/ 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] --------------------------- -------------------------------------- ------- [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 下载:在3 http://repository.primefaces.org/org/primefaces/themes/pepper-grinder/1.0.3/pepper-grinder-1.0.3.pom (636 B中。3 KB/sec)的下载: 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 KB在155.3 KB /秒)[INFO] [INFO] --- AspectJ的行家-插件:1.2:编译(默认)@什么行动--- [ERROR]的 方法findAllMessages()是未定义该类型消息[ERROR] 类型不匹配:不能从消息转换成消息[错误]键入 不匹配:无法从消息转换为消息[错误]方法 getId()未定义为类型String [错误]方法merge()为 未定义类型为String [错误]方法persist()为 undefined为字符串型警告]在 org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect定义建议具有 尚未应用[Xlint:adviceDidNotMatch] [警告]建议在 org.springframework.mock.staticmock.AnnotationDrivenStaticEntityMockingControl 具有限定未应用[Xlint:adviceDidNotMatch] [WARNING]建议 在 中定义org.springframework.mock.staticmock.AbstractMethodMockingControl有 未应用[Xlint:adviceDidNotMatch] [WARN ING]在 org.springframework.mock.staticmock.AbstractMethodMockingControl定义建议尚未应用于 [Xlint:在 org.springframework.scheduling.aspectj.AbstractAsyncExecutionAspect 定义adviceDidNotMatch] [警告]建议尚未应用于[Xlint:adviceDidNotMatch ] [INFO] --------------------------------------------- --------------------------- [INFO] BUILD FAILURE [INFO] -------------- -------------------------------------------------- -------- [INFO]总时间:15.525s [INFO]在完成:周一至2007年1月17时56分26秒GMT 2013 [INFO]最后记忆:6M/125M] [INFO ---- -------------------------------------------------- ------------------ [错误]无法执行目标 org.codehaus.mojo:aspectj-maven-plugi N:1.2:汇编 项目什么行动(默认):编译器错误:[ERROR]错误在allMessages = Message.findAllMessages(); [ERROR] ^^^^^^ [错误] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:72:0::0 方法findAllMessages()未定义类型消息[错误] error = new Message(); [错误] [错误] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:198:0::0 类型不匹配:无法从消息转换为消息[错误] error at message = new Message(); [ERROR] ^^^^ [错误] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:226:0::0 类型不匹配:无法从消息转换在 如果(message.getId()!= NULL)信息[ERROR]错误{[ERROR] [ERROR] /家/ cleanuser/hackday /的WhatsUp/SRC /主/ JAVA/COM /黑客/ JSF/MessageBean_Roo_ManagedBean。 AJ:233:0 :: 0 的方法的getId()是未定义的字符串型ERROR]错误在 message.merge(); [错误] [错误] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:234:0::0 方法merge()未定义为String类型[ERROR] error at message.persist(); [错误] [错误] /家庭/ cleanuser/hackday /的WhatsUp/src目录/主/ JAVA/COM /黑客/ JSF/MessageBean_Roo_ManagedBean。aj:237:0 :: 0 对于String [错误] - > [帮助 1] [错误] [错误]类型未定义方法persist()要查看错误的完整堆栈跟踪,请重新运行 带-e开关的Maven。 [错误]使用-X开关重新运行Maven至 可启用完整的调试日志记录。 [错误] [错误]更多有关 错误和可能的解决方案,请仔细阅读以下条款: [错误] [说明1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我不知道如何使它发挥作用。 正如你可以看到我的步骤与DZone教程完全相同,我不知道有什么不同。 有趣的是,他们的例子工作,但我没有。

我也试过没有运气: mvn clean install 这会给我一个BUILD成功,但不能让它在服务器上运行 mvn tomcat:run 相同的结果与其他命令

如果使用没有与人分享经验各地Spring Roo结合JSF,我感谢一些帮助。

回答

2

它看起来好像“消息”与自动生成的代码使用的某个名称冲突。你会尝试一下,比如说“MyMessage”吗?

+0

这是正确的我创建了一个不同的名称类,它工作正常。 谢谢 – sfrj