Java EEのサンプルは、以下からダウンロードしてください。
http://java.sun.com/javaee/reference/code/index.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