Java EEのサンプルは、以下からダウンロードしてください。
http://java.sun.com/javaee/reference/code/javaee5.jsp
上記からダウンロードできるサンプル(2009年7月時点)を使用する場合の手順と注意事項を以下に説明します。また、サンプルを実行するには、事前にApache Antプロジェクトが提供するAntを別途インストールする必要があります。
以下のファイルを編集します。
/bp-project/app-server.properties
編集項目
プロパティ | 説明 | 編集前 | 編集例 |
|---|---|---|---|
javaee.home | Java EE機能のインストールディレクトリを指定します。 | c:/Sun/AppServer | C:/Interstage/F3FMisjee |
javaee.domaindir | ドメインのディレクトリを指定します。 | ${javaee.home}/domains/ | ${javaee.home}/var/ |
以下のファイルを変名し、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サーバのポート番号を指定します。 |
passwordfileという名前のファイルを作成し、管理ユーザ名のパスワードを指定します。
作成したファイルの指定方法については、手順2を参照してください。
【指定例】
AS_ADMIN_PASSWORD=adminadmin
以下のファイルで実行している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> |
以下のファイルに記載されている"localhost: 8080"のコロンとポート番号の間に含まれる空白スペースを削除してください。
/javaee5/webservices/ssl-jaxws-ear/ssl-jaxws-appclient/build.xml
【編集前】
token="localhost: 8080"
【編集後】
token="localhost:8080"
以下のファイルで実行している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}" /> |
また、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}"/>
以下のエラーが発生しますが、無視して問題ありません。
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
|
サンプルを実行する前に以下のコマンドを実行してJava DBをあらかじめ起動してください。
asadmin start-database