ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

15.1 Java EEのサンプル

Java EEのサンプルは、以下からダウンロードしてください。

http://java.sun.com/javaee/reference/code/index.jsp

上記からダウンロードできるサンプル(2009年7月時点)を使用する場合の手順と注意事項を以下に説明します。また、サンプルを実行するには、事前にApache Antプロジェクトが提供するAntを別途インストールする必要があります。

  1. 以下のファイルを編集します。

    /bp-project/app-server.properties


    編集項目

    プロパティ

    説明

    編集前

    編集例

    javaee.home

    Java EE機能のインストールディレクトリを指定します。

    c:/Sun/AppServer

    C:/Interstage/F3FMisjee

    javaee.domaindir

    ドメインのディレクトリを指定します。

    ${javaee.home}/domains/
    domain1

    ${javaee.home}/var/
    domains/interstage


  2. 以下のファイルを変名し、build.propertiesファイルを作成してファイルを編集します。

    /bp-project/build.properties.sample


    プロパティ

    編集前

    編集例

    説明

    javaee.home

    c:/Sun/SDK

    C:/Interstage/F3FMisjee

    Java EE機能のインストールディレクトリを指定します。

    javaee.server.passwordfile

    ${javaee.home}/samples/bp-project/passwordfile

    C:/sample/passwordfile

    手順3で作成するパスワードファイルのパスを指定します。

    javaee.server.port

    8080

    80

    Webサーバのポート番号を指定します。


  3. passwordfileという名前のファイルを作成し、管理ユーザ名のパスワードを指定します。
    作成したファイルの指定方法については、手順2を参照してください。


    指定例

    AS_ADMIN_PASSWORD=adminadmin


  4. 以下のファイルで実行しているwsimportコマンドを、ijwsimportコマンドに変更します。

    /javaee5/webservices/hello-jaxws/build.xml

    【編集前】

        <target name="get-artifacts-windows" if="windows">
            <exec executable="${javaee.home}/bin/wsimport.bat">
                <arg line="-keep -d ${classesdir} http://${javaee.server.name}:${javaee.server.port}/Hello/HelloService?WSDL"/>
            </exec>
        </target>
    
        <target name="get-artifacts-unix" if="unix">
            <exec executable="${javaee.home}/bin/wsimport">
                <arg line="-keep -d ${classesdir} http://${javaee.server.name}:${javaee.server.port}/Hello/HelloService?WSDL"/>
            </exec>
        </target>

    【編集後】

        <target name="get-artifacts-windows" if="windows">
            <exec executable="${javaee.home}/bin/ijwsimport.bat">
                <arg line="-keep -d ${classesdir} http://${javaee.server.name}:${javaee.server.port}/Hello/HelloService?WSDL"/>
            </exec>
        </target>
    
        <target name="get-artifacts-unix" if="unix">
            <exec executable="${javaee.home}/bin/ijwsimport">
                <arg line="-keep -d ${classesdir} http://${javaee.server.name}:${javaee.server.port}/Hello/HelloService?WSDL"/>
            </exec>
        </target>

    また、同じファイル内のcompile-deploy-serviceターゲットを次のように置き換えます。

    【編集前】

        <target name="compile-deploy-service" depends="init">
            <mkdir dir="${classesdir}"/>
            <echo message="${javaee.home}"/>
            <javac 
                srcdir="./src" 
                includes="endpoint/**"
                destdir="${autodeploydir}"
                classpath="${javaee.home}/lib/j2ee.jar" 
            />
            <waitfor maxwait="100" maxwaitunit="second">
               <or>
                    <available file="${autodeploydir}/endpoint/Hello.class_deployed"/>
                    <available file="${autodeploydir}/endpoint/Hello.class_deployFailed"/>
               </or>
            </waitfor>
            <condition property="deploy_succeeded">
                    <available file="${autodeploydir}/endpoint/Hello.class_deployed"/>
            </condition>
            <condition property="deploy_failed">
                    <available file="${autodeploydir}/endpoint/Hello.class_deployFailed"/>
            </condition>
        </target>

    【編集後】

        <import file="../../../bp-project/main.xml" />
        <target name="compile-deploy-service" depends="init">
            <mkdir dir="${classesdir}/server/WEB-INF/classes"/>
            <echo message="${javaee.home}"/>
            <javac 
                srcdir="./src" 
                includes="endpoint/**"
                destdir="${classesdir}/server/WEB-INF/classes"
                classpath="${javaee.home}/lib/javaee.jar" 
            />
            <jar destfile="${classesdir}/server/Hello.war" basedir="${classesdir}/server"/>
            <antcall target="deploy">
                <param name="run.uri" value="Hello"/>
                <param name="module.name" value="Hello"/>
                <param name="app.module" value="${classesdir}/server/Hello.war"/>
            </antcall>
            <delete dir="${classesdir}/server"/>
        </target>

    さらに、compile-clientターゲットを編集し、以下のようにreplaceタスクを追加してください。

    【編集前】

        <target name="compile-client" depends="get-artifacts">
            <replace 
                file="./src/client/Client.java" 
                token="localhost:8080" 
                value="${javaee.server.name}:${javaee.server.port}"/>
            <javac srcdir="./src/client" destdir="${classesdir}">
                <classpath refid="classpath"/>
            </javac>
        </target>

  5. 以下のファイルに記載されている"localhost: 8080"のコロンとポート番号の間に含まれる空白スペースを削除してください。

    /javaee5/webservices/ssl-jaxws-ear/ssl-jaxws-appclient/build.xml

    【編集前】
    token="localhost: 8080"

    【編集後】
    token="localhost:8080"


  6. 以下のファイルで実行しているasadminコマンドのdeploy/create-jdbc-resource/create-file-userサブコマンドには—targetオプションの指定が必要です。また、--hostと--portの指定は不要なので削除してください。

    /bp-project /app-server-ant.xml


    配備コマンド実行時の編集例は以下です。

    【編集前】

        <exec executable="${asadmin}" failonerror="${failonerror}">
            <arg line=" deploy "/>
            <arg line=" --user ${javaee.server.username}" />
            <arg line=" --passwordfile '${javaee.server.passwordfile}'" />
            <arg line=" --host ${javaee.server.name}" />
            <arg line=" --port ${javaee.adminserver.port}" />
            <arg line=" --name ${module.name}"/>
            <arg line=" --force=true "/>
            <arg line=" --upload=true "/>
            <arg line=" --dbvendorname ${db.vendorname}"/>
            <arg line="${app.module}" />
        </exec>

    【編集後】

        <exec executable="${asadmin}" failonerror="${failonerror}">
            <arg line=" deploy "/>
            <arg line=" --target ${appserver.instance}" />
    <arg line=" --user ${javaee.server.username}" /> <arg line=" --passwordfile '${javaee.server.passwordfile}'" /> <arg line=" --name ${module.name}"/> <arg line=" --force=true "/> <arg line=" --upload=true "/> <arg line=" --dbvendorname ${db.vendorname}"/> <arg line="${app.module}" /> </exec>

    また、asadminコマンドのcreate-jdbc-connection-poolサブコマンドのプロパティに以下のように:connectionAttributesプロパティを追加してください。

    <target name="create-jdbc-connection-pool" depends="tools" 
        description="creates jdbc connection pool">
        <fail unless="db.sid" message="The property db.sid must be set before invoking this target.
     Otherwise there is no database to use."/>
        <fail unless="pool.name" message="The property pool.name must be set before invoking this target.
     Otherwise there is no pool to use with the jdbc resource."/>
        <exec executable="${asadmin}">
            <arg line=" create-jdbc-connection-pool"/>
            <arg line=" --target ${appserver.instance}" />
            <arg line=" --user ${javaee.server.username}" />
            <arg line=" --passwordfile '${javaee.server.passwordfile}'" />
            <arg line=" --datasourceclassname ${db.datasource}" />
            <arg line=" --restype javax.sql.XADataSource " />
            <arg line=" --property portNumber=${db.port}:serverName=${javaee.server.name}:
    User=${db.user}:Password=${db.password}:databaseName=${db.sid}:connectionAttributes=\;create\=true" />
            <arg line=" ${pool.name} " />
        </exec> 
     </target>
    

    また、wsimportプロパティの値をijwsimportコマンドのパスに変更します。

    【編集前】
    <property name="wsimport" value="${javaee.home}/bin/wsimport${javaee-script-suffix}"/>

    【編集後】

    <property name="wsimport" value="${javaee.home}/bin/ijwsimport${javaee-script-suffix}"/>


  7. 以下のエラーが発生しますが、無視して問題ありません。

    keygen-common:
         [echo] Generating key for user javaee in server.
         [exec] ijadmin: ERROR: ISJEE_OM2309: User javaee already exists.
         [exec] ijadmin: ERROR: ISJEE_CLI137 Command create-file-user failed.
         [exec] Result: 1
       [delete] Deleting: C:\sample\javaee\javaee5\enterprise\sec
    urity-stateless-ear\asadminuserpassword.txt
    

    keydel-common:
         [echo] Deleting key for user javaee in server.
         [exec] ijadmin: ERROR: ISJEE_OM2324: No such user [javaee].
         [exec] ijadmin: ERROR: ISJEE_CLI137 Command delete-file-user failed.
         [exec] Result: 1
    Trying to override old definition of task iterate
    

  8. サンプルを実行する前に以下のコマンドを実行してJava DBをあらかじめ起動してください。

    asadmin start-database