37432


こんにちは。

現在、業務研修でTERASOLUNA Server Framework for Javaのチュートリアルの構築作業を行っています。

[TERASOLUNA Server Framework for
Java（Web版）チュートリアル](http://terasoluna.osdn.jp/tutorial/server-
web/Document/WebTutorial.html)

基本的なログオン機能を構築しているのですが、  
2.6 登録処理の動作確認の箇所で登録情報の入力をして登録ボタンを押すと  
「エラーが発生しました。」のレスポンスが返ってきて原因が特定できず困っています。

仕様ツールの環境設定は同じものでそろえていますが、

H2databaseが反映されていない。  
ビジネスロジックは登録機能がきちんと動いていない等が  
考えられます。

基本的に設定ファイル、コード等はチュートリアルの流れに従って、確認して漏れはないと思われますが何かこの時点でエラー画面が返ってきてしまうのに考えられる要因はありますでしょうか？

よろしくお願いします。

**以下追記**

* * *

以下がsqlmapコードになります。

[code]

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMap
                PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
                "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    <!-- SqlMap定義 -->
    <sqlMap namespace="user">
    
    <!-- 指定したIDのを取得する -->
        <select id="getUser"
                parameterClass="jp.terasoluna.thin.tutorial.web.usermanager.dto.InsertInput"
                resultClass="jp.terasoluna.thin.tutorial.web.usermanager.vo.SelectUserOutput">
            SELECT ID, NAME, AGE, BIRTH FROM USERLIST WHERE ID = #id#
        </select>
    
        <!-- ユーザを挿入する -->
        <insert id="insertUser"
            parameterClass="jp.terasoluna.thin.tutorial.web.usermanager.dto.InsertInput">
            INSERT INTO USERLIST (
            ID,
            NAME,
            AGE,
            BIRTH
            )VALUES(
            #id#,
            #name#,
            #age#,
            #birth#)
        </insert>
    
    
    
    
    <!-- 設定例
      <select id="selectUsers"
              resultClass="jp.terasoluna.sample.user.dao.SelectUsersOutput">
        SELECT
            ID AS "userId",
            NAME AS "userName"
        FROM
            USERLIST
      </select>
    
      <select id="getUserCount"
              parameterClass="jp.terasoluna.sample.user.dao.GetUserCountInput"
              resultClass="jp.terasoluna.sample.user.dao.GetUserCountOutput">
        SELECT
            COUNT (*) AS userCount
        FROM
            USERLIST
        WHERE
            ID = #userId#
      </select>
    
      <insert id="insertUser"
              parameterClass="jp.terasoluna.sample.user.dao.InsertUserInput">
        INSERT INTO USERLIST (
            ID,
            NAME
        )
        VALUES (
            #userId#,
            #userName#
        )
      </insert>
    
      <update id="updateUser"
              parameterClass="jp.terasoluna.sample.user.dao.UpdateUserInput">
        UPDATE USERLIST
        SET
            NAME = #userName#
        WHERE
            ID = #userId#
      </update>
    
      <delete id="deleteUser"
              parameterClass="jp.terasoluna.sample.user.dao.DeleteUserInput">
        DELETE FROM
            USERLIST
        WHERE
            ID = #userId#
      </delete>
    -->
    </sqlMap>
    
[/code]


CC BY-SA 3.0
2017-08-23T02:39:06.300
37426
2017-08-23T08:23:33.610
2017-08-23T07:42:00.690
21092
25002
question
java database
TERASOLUNA Server Framework for Java（Web版）チュートリアルでエラーがでています。


`user.getUser`で参照すべき個所を`getUser`で参照しているのではないでしょうか。

[このページ](http://terasoluna.osdn.jp/tutorial/server-
web/Document/WebTutorial_2.6.4.html)を読むと、以下のような記述がありますが、

> SQLMap定義ファイルにて、以下のようにuseStatementNamespaces属性に“true”が指定されている場合は、
> DAOでSQLIDを指定する際に、SQL設定ファイルの名前空間を付与する必要がある。
>
> ・SQL設定ファイル
[code]

>     <sqlMap namespace="user">
>  
>         <!-- 指定したIDのを取得する -->
>         <select id="getUser"
>         　…
>  
[/code]

>
> ・SQLIDの指定例
[code]

>     queryDAO.executeForObject("user.getUser", param,
> SelectUserOutput.class);
>  
[/code]

これに対して、次のような実装になっているために、エラーが出ているのではないかと思います。

[code]

    queryDAO.executeForObject("getUser", param, SelectUserOutput.class);
    
[/code]


CC BY-SA 3.0
2017-08-23T07:45:02.390
37432
2017-08-23T08:23:33.610
2017-08-23T08:23:33.610
21092
21092
37426
answer