DZoneでこのクールな投稿を見つけました。
やってみたかった。私はその例を段階的にたどりましたが、うまくいきました。5 分もかからずに、その Web アプリが起動して実行されるようになりました。
楽しみのためだけに独自のアプリケーションを作成することにしました。しかし、それはうまくいきませんでした。なぜなのかわかりません。すべてをまったく同じ方法で行ったと確信していますが、独自の変数名を使用しただけです。これが私がしたすべてのことです:
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:hsqldb:1.8.0.10、org.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.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.java を更新 SRC_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 を作成 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
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.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、コモンズ-io:コモンズ-io:2.1; 追加されたリポジトリ 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-fileupload:commons-fileupload:1.2.2、commons-io:commons-io:2.1; 追加されたリポジトリ 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-fileupload:commons-fileupload:1.2.2、commons-io:commons-io:2.1; 追加されたリポジトリ 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; 追加されたリポジトリ 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:pepper-grinder: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/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/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/ViewExpiredExceptionExceptionHandler.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_JAVA/com/hack/jsf/MessageBean_Roo_Serializable.aj 作成 SRC_MAIN_JAVA/com/hack/jsf/MessageBean_Roo_Configurable.aj 作成SRC_MAIN_JAVA/com/hack/jsf/MessageBean_Roo_ManagedBean.ajaj SRC_MAIN_JAVA/com/hack/jsf/converter/MessageConverter_Roo_Converter.aj を作成 SRC_MAIN_JAVA/com/hack/jsf/converter/MessageConverter_Roo_Configurable.aj を作成 SRC_MAIN_JAVA/com/hack/jsf/MessageBean_Roo_Serializable.aj を作成 SRC_MAIN_JAVA/com/hack/jsf/ MessageBean_Roo_Configurable.aj 作成 SRC_MAIN_JAVA/com/hack/jsf/MessageBean_Roo_ManagedBean.ajaj SRC_MAIN_JAVA/com/hack/jsf/converter/MessageConverter_Roo_Converter.aj を作成 SRC_MAIN_JAVA/com/hack/jsf/converter/MessageConverter_Roo_Configurable.aj を作成 SRC_MAIN_JAVA/com/hack/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シェルを終了しました
~.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] ビルド whats-up 0.1.0.BUILD-スナップショット [情報] ---------------------------------------------- -------------------------- ダウンロード: 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 (3.3 KB/秒で 636 B) ダウンロード: 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 プロジェクト whats-up でコンパイル (デフォルト): コンパイラ エラー: [ERROR] エラー at allMessages = Message.findAllMessages(); [エラー] ^^^^^^ [エラー] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:72:0::0 メソッド findAllMessages() は未定義ですタイプ Message [ERROR] error at message = new Message(); [エラー] [エラー] /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() は、 type String [ERROR] message.merge() でのエラー。[エラー] [エラー] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:234:0::0 メソッド merge() は型 String に対して未定義です [エラー] message.persist() でのエラー。[エラー] [エラー] /home/cleanuser/hackday/whatsup/src/main/java/com/hack/jsf/MessageBean_Roo_ManagedBean.aj:237:0::0 メソッド persist() は型 String に対して未定義です [エラー] -> [ヘルプ 1] [エラー] [エラー] エラーの完全なスタック トレースを表示するには、-e スイッチを指定して Maven を再実行します。[エラー] -X スイッチを使用して Maven を再実行し、完全なデバッグ ログを有効にします。 http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
私はそれを機能させる方法がわかりません。ご覧のとおり、私の手順は DZone のチュートリアルとまったく同じで、何が違うのかわかりません。興味深いことに、彼らの例は機能しますが、私の例は機能しません。
また、運が悪かっ
mvn clean install
た: これにより BUILD SUCCESS が得られるが、サーバー上で実行できない
mvn tomcat:run
他のコマンドと同じ結果
Spring Roo
と組み合わせて使用した経験のある方がいらっしゃいましたらJSF
、ご助力いただければ幸いです。