程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> WebSphere >> 通向架構師的道路 第十五天 IBM Websphere的安裝與優化 (二)

通向架構師的道路 第十五天 IBM Websphere的安裝與優化 (二)

編輯:WebSphere

5.3 在WAS內布署應用

一般我們使用ear格式在WAS內布署我們的web應用,因此此處和weblogic, tomcat稍稍有點不一樣。

為此,我們做了一個ant腳本用於打包我們的ear。

一個ear文件的格式應該如下:

myEAR

|__ META-INF

   |__application.xml

|__myWAR.war

可以看到,一個ear文件:

包含一個META-INF目錄,在該目錄下會有一個application.xml文件。

然後和META-INF目錄同級的地方會有一個.war文件,這個war文件就是標准的war格式的web應用。

5.3.1 application.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
<display-name>cbbsEAR</display-name>
<module>
<web>
<web-uri>cbbs.war</web-uri>
<context-root>/cbbs</context-root>
</web>
</module>
</application>

5.3.2 使用Ant打包

實際上我們的ant腳本很簡單,它作了如下幾件事:

1) 用IBM WAS自帶的JDK即IBM JDK編譯我們的工程,確保我們的工程可以被我們的WAS能夠解析。

2) 將我們的工程打成.war文件

<target name="makeWAR" depends="compile">

           <jar destfile="${build.dir}/app/ ${war.name}" basedir="${build.dir}" />

         </target>

3) 將.war文件與application.xml文件打成.ear文件

<target name="makeEAR" depends="makeWAR">
<ear destfile="${build.dir}/${ear.name}" appxml="${eardescription.file}">
<fileset dir="${build.dir}/app">
<include name="**/*.war" />
</fileset>
</ear>
</target>

下面給出我們完整的Ant腳本,該腳本還使用到了一個外部的build.properties文件用於設置一些常量。

build.properties

websphere.v7.home=D:/IBM/WebSphere/AppServer

project.home=D:/wspace

webAppName=cbbs

war.name=${webAppName}.war

ear.name=${webAppName}EAR.ear

eardescription.file=D:/wspace/${webAppName}/application.xml

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project default="makeEAR" name="cbbs_build">
<!-- ####################################### CONFIG PROPERTIES ########################################-->
<property file="build.properties" />
<property name="web.home" VALUE="${project.home}/cbbs" />
<property name="src.dir" VALUE="${project.home}/cbbs/src" />
<property name="webcontent.dir" VALUE="${project.home}/cbbs/WebRoot" />
<property name="lib.dir" VALUE="${webcontent.dir}/WEB-INF/lib" />
<property name="extlib" value="${project.home}/${webAppName}/ext-lib" />
<property name="classes.dir" value="${webcontent.dir}/WEB-INF/classes" />
<property name="tld.dir" value="${webcontent.dir}/WEB-INF/tld" />
<property name="build.dir" value="${project.home}/${webAppName}/build" />
<property name="resource.dir" value="${project.home}/${webAppName}/resource" />
<!-- ####################################### CLASSPATH ########################################-->
<path id="classpath">
<pathelement path="${src.dir}" />
<pathelement path="${classes.dir}" />
<fileset dir="${extlib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${websphere.v7.home}\lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${websphere.v7.home}\plugins">
<include name="**/*.jar" />
</fileset>
</path>
<!-- ####################################### CREATE INITIAL DIRECTORIES ##########################-->
<!-- Creating Initial Directoris -->
<target name="init">
<echo message="Creating init directories..." />
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}" />
<mkdir dir="${build.dir}/app" />
<mkdir dir="${build.dir}/WEB-INF" />
<mkdir dir="${build.dir}/WEB-INF/lib" />
<mkdir dir="${build.dir}/WEB-INF/tld" />
<mkdir dir="${build.dir}/WEB-INF/classes" />
<mkdir dir="${build.dir}/css" />
<mkdir dir="${build.dir}/images" />
<mkdir dir="${build.dir}/js" />
<mkdir dir="${build.dir}/jsp" />
<mkdir dir="${build.dir}/fckeditor" />
<mkdir dir="${build.dir}/userfiles" />
<mkdir dir="${build.dir}/userfiles/image" />
</target>
<!-- ####################################### COMPILE ########################################-->
<target name="compile" depends="init">
<echo message="Calling a compile on all the Java source files" />
<javac destdir="${build.dir}/WEB-INF/classes" srcdir="${src.dir}" debug="true" executable="${websphere.v7.home}\java\bin\javac" compiler="javac1.6" fork="true">
<classpath refid="classpath" />
</javac>
<copy todir="${build.dir}" overwrite="true">
<fileset dir="${webcontent.dir}">
<include name="*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/WEB-INF/" overwrite="true">
<fileset dir="${webcontent.dir}/WEB-INF/">
<include name="*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/jsp" overwrite="true">
<fileset dir="${webcontent.dir}/jsp">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/WEB-INF/classes" overwrite="true">
<fileset dir="${resource.dir}">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/WEB-INF/lib" overwrite="true">
<fileset dir="${lib.dir}">
<include name="*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/WEB-INF/tld" overwrite="true">
<fileset dir="${tld.dir}">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/js" overwrite="true">
<fileset dir="${webcontent.dir}/js">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/css" overwrite="true">
<fileset dir="${webcontent.dir}/css">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/images" overwrite="true">
<fileset dir="${webcontent.dir}/images">
<include name="**/*.*" />
</fileset>
</copy>
<copy todir="${build.dir}/fckeditor" overwrite="true">
<fileset dir="${webcontent.dir}/fckeditor">
<include name="**/*.*" />
</fileset>
</copy>
</target>
<target name="makeWAR" depends="compile">
<jar destfile="${build.dir}/app/${war.name}" basedir="${build.dir}" />
</target>
<target name="makeEAR" depends="makeWAR">
<ear destfile="${build.dir}/${ear.name}" appxml="${eardescription.file}">
<fileset dir="${build.dir}/app">
<include name="**/*.war" />
</fileset>
</ear>
</target>
</project>

使用IBM WAS自帶的JDK對工程進行編譯

該套Ant腳本其實還可以繼續優化,這個就留給大家了,關鍵是提供給了大家一個思路。

除了上邊所說的涉及到如何打war,如何打ear的核心腳本外,關鍵在於這個“使用WAS自帶的IBM JDK”對工程進行編譯是很 重要的,下面是核心語句,注意紅色加組的部分。

<path id="classpath">
<pathelement path="${src.dir}" />
<pathelement path="${classes.dir}" />
<fileset dir="${extlib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${websphere.v7.home}\lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${websphere.v7.home}\plugins">
<include name="**/*.jar" />
</fileset>
</path>
<javac destdir="${build.dir}/WEB-INF/classes" srcdir="${src.dir}" debug="true"
executable="${websphere.v7.home}\java\bin\javac" compiler="javac1.6" fork="true">
<classpath refid="classpath" />
</javac>

5.3.3 布署EAR

編譯完後該Ant腳本會產生一個cbbsEAR.ear的文件:

這個文件就是我們用於布署的EAR文件了。

根據下面的步驟一步步來布署我們的ear吧。

點[安裝]

下一步

這步會比較慢,需要慢慢等一會。

下一步下一步到一直到下面這個界面,請一定記住要把我們之前設置的“數據源”與工程中的jdbc的JNDI名進行綁定啊,一 定不要忘。

把“選擇”處的勾打上後,點擊[浏覽]按鈕,選擇我們之前建立的“DataSource”。

點[應用]按鈕後回到繼續布署的界面。

將需要布署的一些選項review一遍並確認無誤後點[完成]按鈕,開始布署。

WAS布署的進度界面

布署完後不要忘記點紅圈處的“保存”啊,要不一切白費。

布署完後,我們的應用的應用程序狀態為“停止”狀態。

選擇我們的應用,點[啟動]按鈕

啟動後我們的應用程序應該為如下狀態

打開一個ie,輸入: http://localhost:9080/cbbs

登錄後進行一些操作,一切正常,WAS安裝設置成功。

結束今天的教程,明天的教程將會著重在使用IBM的HttpServer即IHS如何去結合IBM WebSphere Application Serve做集成。

查看全套教程:http://www.bianceng.cn/Programming/project/201302/35466.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved