2013-01-07 163 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