SAStruts(Super Agile Struts)あれこれ
S2BlazeDS用のプロジェクト作成しましょう
目次
- Eclipseプロジェクト作成
- Flexプロジェクト特性の追加
- チュートリアルプロジェクトにHSQLDBのjarファイルを追加
- S2JDBCの設定ファイル編集
- サービスやEntityクラスなどの自動生成
1.Eclipseプロジェクト作成
DoltengプラグインでEclipseプロジェクト"s2blazeds-sample"を作成します。本稿では、簡単にするためFlexクライアントモジュールとJavaサーバーサイドモジュールを1つのプロジェクトにしてしまいます。 それでは、設定項目を以下のようにして作成しましょう。
プレゼンテーションに「S2BlazeDS(ServerOnly)」を選択しています。これにより。"${DOCUMENTS}src\main\webapp\WEB-INF\flex"フォルダに以下のBlazeDS用設定ファイルが配置され、また、必要なライブラリも自動的に配置されます(Doltengってすごい便利ですね)。
| services-config.xml |
| messaging-config.xml |
| proxy-config.xml |
| remoting-config.xml |
Flexナビゲーターで「s2blazeds-sample」を選択し、右クリックします。[Tomcatプロジェクト]→[コンテキスト定義を更新]をクリックし、「操作が成功しました」と表示されたら成功です。
2.Flexプロジェクト特性の追加
Flexナビゲーターで「s2blazeds-sample」を選択し、右クリックします。[Flexプロジェクト特性]→[Flexプロジェクト特性を追加]をクリックします。
アプリケーションサーバーの種類は「J2EE」を選択します。
BlazeDSサーバーサイトの設定を行います。
| ルートフォルダ | ${DOCUMENTS}\s2blazeds-sample\src\main\webapp |
| ルートURL | http://localhost:8400/s2blazeds-sample |
| コンテキストルート | s2blazeds-sample |
| 出力フォルダ | bin-debug |

※「出力フォルダはサーバールートのサブフォルダではありません。」と警告が出ますが、気にしなくてOKです。
すると、Flex Builder3の「問題」ビューに「HTMLラッパーを作成できません~~」というようなエラーが表示されているので、以下のようにメッセージを右クリックして「HTMLテンプレートの再作成」をクリックします。"s2blazeds-sample\html-template\"が生成されればOKです。
あと、Flexソースの置き場が"s2blazeds-sample\src"になるのですが、これではサーバ側のソースと混在してしまうので、変更します。とりあえず、"s2blazeds-sample\flexsrc"フォルダを作成しましょう。そして、"s2blazeds-sample\flexsrc\main.mxml"ファイルを"s2blazeds-sample\flexsrc"に移動します。
Flexナビゲーターで「s2blazeds-sample」を選択し、右クリックします。[プロパティ]を選択してプロパティウインドウを開き、[Flex ビルドパス]を選択し。「メインソースフォルダ」を"src"→"flexsrc"に変更し、また、「出力フォルダ」を"bin-debug"→"src\main\webapp\flex"に変更します。
3.チュートリアルプロジェクトにHSQLDBのjarファイルを追加
ダウンロードしたhsqldb.jarを、"s2blazeds-sample\src\main\webapp\WEB-INF\lib"フォルダーにコピーしましょう。そして、チュートリアルプロジェクトのプロパティから、hsqldb.jarを追加しましょう。
↓

↓

この辺の操作は、MySQLからDoltengでEntityを自動生成しましょうの「2.MySQL Connector/J (JDBCドライバ)を配置」が参考になると思います。
4.S2JDBCの設定ファイル編集
★"s2blazeds-sample\src\main\resources\jdbc.dicon"を以下のように変更します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<!-- for HSQLDB -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"org.hsqldb.jdbcDriver"
</property>
<property name="URL">
"jdbc:hsqldb:file:c:/hsqldb/tutorial"
</property>
<property name="user">"sa"</property>
<property name="password">""</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<destroyMethod name="close"/>
</component>
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>
★"s2blazeds-sample\src\main\resources\s2jdbc.dicon"を以下のように変更します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <include path="jdbc.dicon"/> <include path="s2jdbc-internal.dicon"/> <component name="jdbcManager" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl"> <property name="maxRows">0</property> <property name="fetchSize">0</property> <property name="queryTimeout">0</property> <property name="dialect">hsqlDialect</property> </component> </components>
5.サービスやEntityクラスなどの自動生成
データベースアクセスを行うためのクラスは、S2JDBC-Genを使用して自動生成します。"gen-entity"をターゲットとして実行すると、以下のファイルが生成されます。実行の方法は、MySQLからS2JDBC-Genで各種クラスを自動生成しましょう(Eclipse編)の「4.S2JDBC-Gen実行」を参考にして下さい。s2blazeds-sample\src\main\java\samples\entity\Address.java s2blazeds-sample\src\main\java\samples\entity\Department.java s2blazeds-sample\src\main\java\samples\entity\Employee.java s2blazeds-sample\src\test\java\samples\entity\AddressTest.java s2blazeds-sample\src\test\java\samples\entity\DepartmentTest.java s2blazeds-sample\src\test\java\samples\entity\EmployeeTest.java s2blazeds-sample\src\main\java\samples\condition\AddressCondition.java s2blazeds-sample\src\main\java\samples\condition\DepartmentCondition.java s2blazeds-sample\src\main\java\samples\condition\EmployeeCondition.java s2blazeds-sample\src\main\java\samples\entity\AddressNames.java s2blazeds-sample\src\main\java\samples\entity\DepartmentNames.java s2blazeds-sample\src\main\java\samples\entity\EmployeeNames.java s2blazeds-sample\src\main\java\samples\service\AbstractService.java s2blazeds-sample\src\main\java\samples\service\AddressService.java s2blazeds-sample\src\main\java\samples\service\DepartmentService.java s2blazeds-sample\src\main\java\samples\service\EmployeeService.java
※このようなエラーの出る場合は、Refreshの説明どおりにResourceSynchronizerをインストールして下さい。
[refresh] refresh task failed. cause=java.net.ConnectException: Connection refused: connect BUILD SUCCESSFUL Total time: 10 seconds
おまけ
アップロードしたファイル
- tomcat_eclipse.jpg
- tomcat_eclipse2.jpg
- after_import.jpg
- start_tomcat.jpg
- import_1.jpg
- create_db_user.jpg
- create_table.jpg
- employee_mod1.jpg
- er1.jpg
- joincolumnser.jpg
- employee_add1.jpg
- employee_add2.jpg
- employee_add3.jpg
- employee_add4.jpg
- employee_del1.jpg
- employee_del2.jpg
- employee_del3.jpg
- employee_token1.jpg
- employee_token2.jpg
- employee_token3.jpg
- employee_page1.jpg
- index_page.jpg
- minus_action_1.jpg
- minus_action_2.jpg
- employee_hsqldb1.jpg
- emp_blk_add1.jpg
- emp_blk_add2.jpg
- emp_blk_add3.jpg
- emp_blk_add4.jpg
- emp_blk_add5.jpg
- hello_project1.jpg
- hello_project2.jpg
- hello_project3.jpg
- hello_project4.jpg
- hello_project5.jpg
- tiles1_1.jpg
- tiles1_2.jpg
- tiles1_3.jpg
- tiles1_4.jpg
- tutorial_db_er.jpg
- mysql_entity1.jpg
- mysql_entity2.jpg
- mysql_entity3.jpg
- mysql_entity4.jpg
- mysql_entity5.jpg
- mysql_entity6.jpg
- mysql_entity7.jpg
- mysql_entity8.jpg
- mysql_entity9.jpg
- mysql_entity10.jpg
- download_file1.jpg
- up.gif
- ajax_pattern1_1.jpg
- ajax_pattern1_2.jpg
- ajax_pattern2_2.jpg
- ajax_pattern2_1.jpg
- emp_blk_upd1.jpg
- emp_blk_upd2.jpg
- emp_blk_upd3.jpg
- emp_blk_upd4.jpg
- emp_blk_upd5.jpg
- ajax_json_1.jpg
- ajax_json_2.jpg
- ajax_json_3.jpg
- ajax_json_4.jpg
- ajax_json_5.jpg
- gen_eclipse1_1.jpg
- gen_eclipse1_2.jpg
- gen_eclipse1_3.jpg
- gen_eclipse1_4.jpg
- gen_eclipse1_5.jpg
- blk_add_vali_1.jpg
- blk_add_vali_2.jpg
- blk_add_vali_3.jpg
- blk_add_vali_4.jpg
- super1_1__1.jpg
- super1_1__2.jpg
- super1_1__0.jpg
- super1_1__3.jpg
- gen_fileheader1.jpg
- super1_1__4.jpg
- supersample2-1_1.jpg
- supersample2-1_2.jpg
- supersample2-1_3.jpg
- supersample2-1_4.jpg
- previewimage.jpg
- previewimage2.jpg
- supersample2-1_5.jpg
- supersample2-2_1.jpg
- supersample2-2_4.jpg
- supersample2-2_2.jpg
- supersample2-2_3.jpg
- supersample2-2_5.jpg
- supersample2-4_1.jpg
- supersample2-4_2.jpg
- supersample2-4_3.jpg
- supersample2-4_4.jpg
- supersample2-4_5.jpg
- supersample2-5_1.jpg
- supersample2-5_2.jpg
- supersample2-5_3.jpg
- supersample2-5_4.jpg
- supersample2-5_5.jpg
- supersample2-5_6.jpg
- supersample2-6_1.jpg
- supersample2-6_2.jpg
- supersample2-6_4.jpg
- supersample2-6_5.jpg
- supersample2-6_3.jpg
- supersample2-7_1.jpg
- supersample2-7_2.jpg
- blk_upd_reset_1.jpg
- blk_upd_reset_2.jpg
- blk_upd_reset_3.jpg
- blk_upd_reset_4.jpg
- blk_upd_reset_5.jpg
- supersample1-6_1.jpg
- supersample1-6_2.jpg
- supersample1-6_3.jpg
- supersample1-6_4.jpg
- supersample1-6_5.jpg
- supersample1-6_6.jpg
- supersample1-7_1.jpg
- supersample1-7_2.jpg
- supersample1-7_3.jpg
- supersample1-7_4.jpg
- supersample1-7_5.jpg
- supersample1-7_6.jpg
- supersample1-4_1.jpg
- supersample1-4_2.jpg
- supersample1-4_3.jpg
- supersample1-4_4.jpg
- supersample1-4_6.jpg
- supersample1-4_7.jpg
- supersample1-4_5.jpg
- pre_db_sample1.jpg
- pre_db_sample2.jpg
- pre_db_sample3.jpg
- pre_db_sample4.jpg
- pre_db_sample5.jpg
- supersample1-8_1.jpg
- supersample1-8_2.jpg
- supersample1-8_3.jpg
- supersample1-8_4.jpg
- supersample1-8_6.jpg
- supersample1-8_5.jpg
- more_s2jdbc_1.jpg
- more_s2jdbc_2.jpg
- more_s2jdbc_3.jpg
- more_s2jdbc_4.jpg
- t_safe_search1_1.jpg
- t_safe_search1_2.jpg
- t_safe_search2_1.jpg
- t_safe_search2_2.jpg
- project_websrv_1.jpg
- project_websrv_3.jpg
- ws_1address_1.jpg
- flexbuilder_1.jpg
- flexbuilder_2.jpg
- flexbuilder_3.jpg
- flexbuilder_4.jpg
- flexbuilder_5.jpg
- flexbuilder_6.jpg
- flexbuilder_7.jpg
- flexbuilder_8.jpg
- flexbuilder_9.jpg
- flexbuilder_10.jpg
- flexbuilder_11.jpg
- flexbuilder_12.jpg
- flexbuilder_13.jpg
- project_flex_1.jpg
- project_flex_2.jpg
- project_flex_3.jpg
- project_flex_4.jpg
- project_flex_5.jpg
- project_flex_8.jpg
- project_flex_7.jpg
- project_flex_6.jpg
- flex_emp_list_1.jpg
- flex_emp_list_2.jpg
- flex_emp_lst_e_1.jpg
- flex_emp_add_1.jpg
- flex_emp_add_2.jpg
- flex_emp_add_3.jpg
- flex_emp_add2_1.jpg
- flex_emp_add2_2.jpg
- flex_emp_add2_3.jpg
- flex_upload_1.jpg
- flex_upload_2.jpg
- tcpmon_1.jpg
- tcpmon_2.jpg
- tcpmon_3.jpg
- tcpmon_4.jpg
- flex_upload2_1.jpg
- flex_upload2_2.jpg
- flex_upload2_3.jpg
- flex_emp_del_1.jpg
- flex_emp_del_2.jpg
- flex_emp_del_3.jpg
- flex_emp_spr_1.jpg
- flex_emp_spr_2.jpg
- flex_emp_spr_3.jpg
- flex_grid_chk1_1.jpg
- flex_grid_chk1_2.jpg
- flex_grid_chk1_3.jpg
- flex_bulk_del_1.jpg
- flex_bulk_del_2.jpg
- flex_bulk_del_3.jpg
- flex_dd_grid1_1.jpg
- flex_dd_grid1_2.jpg
- flex_dd_grid1_3.jpg
- blazeds_setup_1.jpg
- s2blaze_proj_1.jpg
- s2blaze_proj_2.jpg
- s2blaze_proj_3.jpg
- s2blaze_proj_4.jpg
- s2blaze_proj_5.jpg
- s2blaze_proj_6.jpg
- s2blaze_proj_7.jpg
- s2blaze_proj_8.jpg
- s2blaze_proj_9.jpg
- blaze_emplist1_1.jpg
- blaze_emplist2_1.jpg
- blaze_emplist2_2.jpg
- blaze_emp_add_1.jpg
- blaze_emp_add_2.jpg
- blaze_emp_add_3.jpg
- blaze_fms1_1.jpg
- blaze_fms1_2.jpg
- blaze_fms2_1.jpg
- project_batch_1.jpg
- supersample2-3_1.jpg
- supersample2-3_2.jpg
- supersample2-3_3.jpg
- supersample2-8_1.jpg
- supersample2-8_2.jpg
















