在n年前java只是一種編程語言的理解,但現在的java非常強大,其含義也發生變化,我們可以理解為海陸空總集合的部隊,其下屬分支很多,如JSp、servlet、javabean、applet、ejb、jms、J2SE(無線通訊用)、java2D、java3D……此處我們著重介紹java的web應用和開發,即JSP、servlet、javabean、applet、ejb等。其中applet是比較特殊的,它需要jre(java運行環境)的支持,並且對jre版本有要求,即applet是用jdk1.4開發的,那麼jre也得1.4版本的。java的web開發需要視情況而定,如果只是編譯JSP、servlet、javabean、applet等,只需要安裝jdk(java開發工具包),如果加上ejb,就得jdk+j2ee。jdk、j2ee的安裝程序到http://java.sun.com下載,安裝後,配置的環境變量如下: 1.CLASSPATH 路徑:.;C:\j2sdk1.4.0\lib\tools.jar;C:\j2ee\lib\j2ee.jar; 說明:jdk版本是1.4.0的,安裝在c盤,讀者可根據安裝的目錄自定 2.J2EE_HOME 路徑:c:\j2ee 說明:J2EE的目錄 3.java_HOME 路徑:C:\j2sdk1.4.0 說明:jdk的目錄 4.Path 路徑:C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\dt.jar;C:\j2sdk1.4.0\bin;C:\j2sdk1.4.0\jre\bin;說明:如果Path變量有其他的值,請在後面續接此處的值 在Windows2000XXX中,開始->設置->控制面板->系統->高級->環境變量->系統變量中設置上述的值。在window9X中,上述的變量寫在autoexec.bat文件中,格式是變量=值(回車)。測試jdk是否可用的方法是在c盤下新建一個Test.java文件,寫入以下代碼 import java.util.Date; public class Test { //構造函數 public Test(){} //顯示當前時間的方法 public String getDate() { Date date=new Date(); return date.toString(); } } 在DOS狀態下,鍵入C:\>javac ./Test.Java,編譯通過後,同目錄下新增Test.class,說明jdk成功安裝。測試j2ee:在DOS狀態下,鍵入C:\j2ee\bin>j2ee -verbose,如果啟動的過程中沒有錯誤,不要關閉窗口,在IE浏覽器中訪問HTTP://localhost:8000,看到默認的j2ee主頁,由此可看出J2EE除了自帶工具包外還可以充當web服務器的角色。 2. jbuilder、jboss、ms sql2000配置開發ejb應用系統,較好的開發發布的工具組合是websphere+visualAge,兩者都是ibm出品,協同工作性非常好,包括建模、版本控制、ejb開發、web發布等一體化,讓程序員從底層的ejb開發中解放出來。但該組合的價格大概是十萬人民幣,不是每個客戶都可以承受的,所以我們推薦另一個組合:jbuilder7+jboss3,數據庫選擇微軟的SQL Server2000(簡稱sql2000)。部分介紹參考了劉曉巍(
[email protected])的文章,並加入作者的見解。 jboss每一個版本的差別很大,它不象傳統的軟件兼容性好。此例jboss的版本是jboss-3.0.4_tomcat-4.0.6,下載地址:http://prdownloads.sourceforge.Net/jboss/jboss-3.0.4_tomcat-4.0.6.zip?download。數據庫sql2000和jboss一起協同工作,有兩種方式,一種是odbc-jdbc,一種是jdbc。許多web服務器自帶odbc-jdbc驅動,無需下載,在控制面板->管理工具->數據源(odbc)中設置數據源即可使用,但如果要開發ejb,要使用jdbc驅動。很多公司提供ms sql2000的jdbc驅動(屬第四種類型驅動,即純java驅動),作者建議大家到微軟的官方站點下載:http://www.microsoft.com/downloads/details.ASPx?FamilyID=86212d54-8488-481d-b46b-af29bb18e1e5&DisplayLang=en。下載後安裝,默認安裝路徑是C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC,jdbc的驅動包在lib中,分別是msbase.jar、mssqlserver.jar、msutil.jar。 jboss和jbuilder協同工作,需要下載並安裝JBossOpenTool For JBuilder 7,下載地址:http://weisoft.myrice.com/download/JBuilder_JBossOT.jar。將下載的JbossOpenTool.jar拷貝至Jbuilder7的lib\ext目錄下,重啟動JBuilder。准備工作完成後,我們開始配置工作:一、 在jboss中配置sql2000的JDBC驅動將msbase.jar, msutil.jar, mssqlserver.jar三個文件拷貝至Jboss的Server\default\lib目錄下。將Jboss的docs\examples\jca目錄下的mssql-service.xml, mssql-xa-service.xml文件拷貝至Jboss的server\default\deploy目錄下,修改mssql-service.xml,/*…..*/中是說明文件,千萬不要拷貝到該XML文件中。 <config-property name="ConnectionURL" type="java.lang.String"> jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind </config-property> /*------sql2000默認端口是1433,如果sql2000和jboss分裝不同機器,則localhost要改成數據庫的ip地址,數據庫選擇sql2000自帶的Northwind數據庫,你可以改成別的數據庫------*/ <config-property name="UserName" type="java.lang.String">sa</config-property> /*------數據庫的用戶名----*/ <config-property name="PassWord" type="java.lang.String">csdn</config-property> /*------與數據庫用戶名對應的密碼------*/ 修改mssql-xa-service.XML,ServerName、DatabaseName要和上個文件的一樣。 <config-property name="XADataSourcePropertIEs" type="Java.lang.String"> ServerName=localhost;DatabaseName=Northwind;SelectMethod=cursor </config-property>
二、 運行jboss
運行“jboss安裝目錄\bin\run.bat”,打開IE,在地址欄輸入 http://localhost:8080,出現一些錯誤信息,大意是沒有web應用程序等,讀者可以先在“jboss安裝目錄\server\default\deploy”中新建一個簡單的web應用程序,或者等待後面用jbuilder中發布一個web應用,如果需要新建,步驟如下: 1、“jboss安裝目錄\server\default\deploy”中新建文件夾db_test.war,在db_test.war中新建index.JSP,內容如下: <%@page contentType="text/Html"%> <%@ page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext" %> <h3>Test sql2000 Database</h3> <% InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:/MSSQLDS"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM Employees"); while ( rs.next() ) { out.println( rs.getInt(“EmployeeID”) + "<br>"); } conn.close(); %> 在db_test.war中新建文件夾WEB-INF,其中有兩個文件jboss-web.xml和web.xml jboss-web.xml內容是 <jboss-web> </jboss-web> web.xml內容是 <?XML version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://Java.sun.com/dtd/web-app_2_3.dtd"> <web-app></web-app> 訪問http://localhost:8080/db_test,成功後表示和數據庫正常連接了。
三、 配置JBuilder
1、啟動jbuilder,Tools->Enterprise Setup,單擊Database Drivers頁上的Add, 在彈出的對話框中單擊New,. 在彈出的對話框中填寫Name為MS SQL Server JDBC, Location選擇User Home,單擊Add按鈕,選擇msbase.jar, msutil.jar, mssqlserver.jar,單擊OK關閉當前對話框,可以看到MS SQL Server JDBC已被加入,單擊OK關閉當前對話框,再次單擊OK,配置完成。 2、重起JBuilder 7,Tools->Configure Servers,選中左側的JBoss 3.X,選中右邊的Enable Server,填寫: General頁:Home Directiry = F:\jboss-3.0.4_tomcat-4.1.12 // <——JBoss的安裝目錄 Main Class = org.jboss.Main VM Parameters =-ms64m -mx64m -Dprogram.name=run.bat Server Parameters = -c default Working Directory = F:\jboss-3.0.4_tomcat-4.1.12\bin Custom頁:JBoss Installation Directory = F:\jboss-3.0.4_tomcat-4.1.12 // <——JBoss的安裝目錄 Tomcat 4X JBuilder Installation Directory = F:\JBuilder7\jakarta-tomcat-4.0.3 //<——Tomcat的安裝目錄 JBoss Configuration to Use = default 單擊OK。 3、Tools—>Configure LibrarIEs, 在彈出的對話框中單擊New按鈕,在Name欄中填寫JBoss Libs,單擊Add按鈕,加入JBoss目錄下\Server\default\lib目錄下的Javax.servlet.jar和jboss-J2EE.jar文件,單擊OK。 4、Tools—>Database Pilot,新打開的“Database Pilot”窗口是察看數據庫的,相當於數據庫服務器的客戶端,選擇File—>New…, Driver=com.microsoft.jdbc.sqlserver.SQLServerDriver URL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName= Northwind 單擊OK,在左邊窗口出現我們新建的數據庫連接,雙擊,輸入用戶名密碼就可以浏覽數據庫Northwind中的數據表。注意此處URL的寫法要剛剛配置的jboss的XML文件一樣。如果讀者沒法連上數據庫,可以把sql2000的jdbc驅動msbase.jar、mssqlserver.jar、msutil.jar拷貝到“jbuilder安裝目錄\lib”中。
3. 在jbuilder中開發ejb
一、 新建一個Project:選擇File->New Project,在Name欄填寫JBossDemo,在Directory欄輸入保存路徑,其它不變,單擊Finsih。選擇Project->Project properties,在Path頁的Required Libraries中單擊Add按鈕,在彈出的對話框中選擇我們剛才建立的JBoss Libs,單擊OK。選擇Server頁,選中Single Server For All Service in Project,在下拉列表中選擇JBoss 3.X,單擊OK。二、 新建一個EJB Module:選擇File->New,在彈出的對話框中選擇Enterprise頁中的EJB Module圖標,單擊OK。在彈出的對話框中Name欄填寫JBossDemoModule,其它不變,單擊OK。三、 新建兩個CMP:右鍵單擊左下角的DataSource,選擇Import Schema From Database,在彈出的對話框“Database Schema Provider”中選擇“Choose Existing Connection”,在彈出的“Select Database”中選擇我們剛建立的“jdbc:microsoft:sqlserver…”,單擊ok,在“Database Schema Provider”中,按如下信息填寫,其他不變: UserName:sa Password:csdn JNDI Name:java:/MSSQLDS Extended properties:DatabaseName=Northwind 勾選All Schemas和Views項單擊OK。成功的話,在DataSource下面將出現一個java:/MSSQLDS項,單擊其左側的+號,將其展開,將會看到表名。右鍵單擊Employees表,選擇CMP 2.0 Entity Bean, 同樣右鍵單擊Orders表,選擇CMP 2.0 Entity Bean。四、 建立表關聯的關系:右鍵單擊右側的代表Employees表的矩形,選擇Add->Relationship後,單擊指向代表Oderss表的矩形後,將會看到一條線把兩個矩形連接起來了,同時Employees表多了一個orders字段。單擊右下角的JBossCMP-JDBC頁,按如下填寫,其它不變: datasource = MSSQLDS datasource-mapping = Hypersonic SQL 選擇File->Save All保存項目。選擇Project->“Make Project JbossDemo.jpx”編譯項目。五、 建立Session Bean:在右邊的空白處單擊右鍵,選擇Create EJB-> Session Bean, 將Bean Name改為GetData,右鍵單擊代表這個Session Bean的矩形,選擇Add->Method,按如下填寫: Method Name = GetOrdersByEmployeesID Return Type = Vector Input Parameters = Integer ID Interface = Remote 六、 編寫代碼:右鍵單擊代表GetData的矩形,選擇 View Bean Source。在開始處加入以下語句: import java.util.*; import javax.naming.*; 按如下填寫GetOrdersByEmployeesID: public Vector GetOrdersByEmployeesID(Integer ID) { Vector result = new Vector(); result.add(ID); try { Context ctx = new InitialContext(); EmployeesHome home = (EmployeesHome)ctx.lookup("Employees"); Employees emp = home.findByPrimaryKey(ID); Collection orders = emp.getOrders(); Iterator it = orders.iterator(); while(it.hasNext()) { Orders order = (Orders)it.next(); result.add(order.getOrderID()); } } catch (Exception ex) { System.out.println("ShowOrdersByEmployeesID() error : " + ex.getMessage()); } return result; } 七、 建立Servlet:選擇File->New,在彈出的對話框中選擇Web頁中的Servlet圖標,單擊OK。在彈出的對話框中Class Name欄填寫FormServlet,其它不變,單擊Next,選中doGet()項,單擊Next,此處的Name和URL pattern是有講究的,它說明該servlet的web位置和web顯示名稱,其它不變,單擊Finish。按如下填寫FormServlet.java的doGet()函數: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("<h1>Enter the Employees ID</h1>"); out.println("<strong>Enter Employees ID in the input fIElds below.</strong>"); out.println("<br><br>"); out.println("<form action=showordersservlet method=POST>"); out.println("Name<br>"); out.println("<input type=text name=EmployeeID value=\"\" size=20 maxlength=150>"); out.println("<br><br><br><br>"); out.print("<input type=submit value=Submit>"); out.println("</form>"); } 再次選擇File->New,在彈出的對話框中選擇Web頁中的Servlet圖標,單擊OK。在彈出的對話框中Class Name欄填寫ShowOrdersServlet,其它不變,單擊Next,選中doPost()項,其它不變,單擊Next,單擊Next,單擊Add Parameter,按如下填寫: Name = EmployeeID Type = String Desc = employee’s ID Variable = employeeID Default = 1 單擊Next,單擊Finish。按如下填寫ShoWordersServlet.java的doPost()函數:別忘了在開始處加入以下語句: import java.util.*; import Javax.naming.*; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String employeesID = request.getParameter("EmployeeID"); if (employeesID == null) { employeesID = "1"; } response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); Vector orders = new Vector(); try { Context ctx = new InitialContext(); GetDataHome home = (GetDataHome)ctx.lookup("GetData"); GetData getData = home.create(); orders = getData.GetOrdersByEmployeesID(new Integer(employeesID)); } catch (Exception ex) { System.out.println("GetOrdersServlet doPost() error :"+ex.getMessage()); } Iterator it = orders.iterator(); out.println("<html>"); out.println("<head><title>ShoWordersServlet</title></head>"); out.println("<body>"); out.println("<p>Orders with EmployeesID " + employeesID+ "</p>"); while(it.hasNext()) { out.println("<p>OrderID = " + it.next().toString()+"</p>"); } out.println("<h1>Order Count = " + orders.size()+"</h1>"); out.println("</body></Html>"); } 八、 建立EAR文件:右鍵單擊左側目錄樹中的的<Default WebApp>,選擇Properties。將WebApp頁的Name填寫為JBossDemo,將Dependencies頁中的所有項設置成Exclude All,單擊OK。選擇File->New,在彈出的對話框中選擇Enterprise頁中的EAR圖標,單擊OK。第一頁不變,單擊Next,選中JBossDemoModule,單擊Next,單擊Next,單擊Next,選中JBossDemo,單擊Finish。選擇File->Save All保存項目。選擇Project->“Rebuild Project JBossDemo.jpx”編譯項目。九、 發布整個應用程序:右鍵單擊左側目錄樹中的的JBossDemo.eargrp,選擇Deploy Options for “JBossDemo.ear” —>Deploy,發布應用程序。十、 測試應用程序:打開IE,在地址欄輸入 http://localhost:8080/JBossDemo/formservlet,回車,在編輯框中輸入3,單擊“submit”即可。
4. 在jbuilder中使用vss進行團隊開發
部分參考網上“CN-Java論壇->CASE工具->VSS與Jbuilder5/6進行代碼控制的說明書”。一、vss安裝如果你的電腦裝有vss,但版本的不是vss6.0,那你可以卸裝(服務器版本)或者清理注冊表記錄(客戶端版本),開始->運行->regedit.exe,清除 HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\SourceSafe 中的所有記錄。vss6.0是微軟Visual Studio 6.0中的一員,你可以從中安裝,作者安裝的是vss6.0獨立版,運行vss_ss/setup.exe,安裝成功後重啟電腦。二、vss服務器端設置運行“開始->程序->Microsoft Visual Studio 6.0-> Microsoft Visual SourceSafe-> Visual SourceSafe 6.0 Admin”,用戶名Admin,密碼默認為空,在“Visual SourceSafe Administrator”中,Users->Change Password,修改管理員密碼,單擊ok。vss6.0默認的數據庫名是VSS,我們創建新的數據庫Tools->Create Database…,選擇該數據庫放置的位置,例如D:\VSSDB,勾選New 6.0 database…,單擊ok。Users->Open SourceSafe Database,雙擊vssdb,此時我們操作的是vssdb數據庫,修改管理員密碼並增加該數據庫的使用用戶,例如Users->Add User…,User name:cjw,PassWord:1234,單擊ok。選擇tools->Options,在彈出窗口選擇 Project Security 標簽,選擇 enable project security 復選框,單擊ok。選擇tools->Rights by Project,在彈出窗口設置用戶的權限,設置完成之後,單擊close。三、在vss數據庫中新建項目運行“開始->程序->Microsoft Visual Studio 6.0-> Microsoft Visual SourceSafe-> Microsoft Visual SourceSafe 6.0 ”,選擇File->Open SourceSafe Database…,雙擊我們剛建立的數據庫。vss允許以任何的層次結構存儲組織項目,在一個數據庫中,可以創建多個項目,選擇File->Create Project…,創建一個項目,例如daxt。四、jbuilder中設置vss 打開Jbuilder,打開我們建立的JbossDemo工程,選擇Team->Select Project VCS,選擇Visual SourceSafe,單擊ok。選擇Team->Place Project into VSS,在彈出窗口中,填寫“vss安裝目錄/win32”,單擊next,填寫剛建立數據源的目錄路徑,單擊next,填寫admin的用戶名和密碼,單擊next,選擇想置入vss中的目錄或文件,單擊next、next,填寫數據源的位置(一般情況下,不填也可以),單擊finish,等待jbuilder把項目加入vss中,根據對話框的內容知道操作是否成功。 五、項目開發人員獲得VSS上的項目工程 vss6.0服務器安裝後,項目開發人員運行vss服務器中“vss安裝目錄/NETSETUP.EXE”,根據提示安裝。或者把vss服務器中“vss安裝目錄\win32\SSEXP.EXE”的快捷方式放到本機,直接運行即可。以下部分作者沒有非常詳細測試過,請讀者見諒,若有問題,請發email:
[email protected]。訪問服務器共享出來的VSS數據源目錄和jbuilder工程,把它們映射到自己的電腦上。運行Jbuilder,打開Demo工程。選擇Team->Select Project VCS,選擇Visual SourceSafe,單擊ok。選擇Team->Pull Project from VSS ,選擇映射的服務器上的VSS數據源目錄,單擊next,填寫自己的用戶名稱和密碼,單擊next,選擇數據源內合適的項目工程,單擊next,選擇一個空目錄作為新項目的存放地點,單擊finish。 根據對話框的內容知道操作是否成功。工程check in後,選擇Team->Configure Visual SourceSaft,在彈出式窗口中可以重新設定vss的參數。六、在jbuilder中如何使用vss 在jbuilder中打開JBossDemo工程。通過VSS進行代碼控制,需要經常得到最新的項目代碼文檔,選擇Team->Commit Browser,在彈出窗口中可以得到最新代碼版本與本地版本之間的變更列表,單擊Commit使本地的版本得到更新(注:可選擇變更記錄的action項選擇對此變更的操作)。修改文件前,要把文件check out出來,在jbuilder左邊工程窗口中右擊需要修改的文件,選擇 Visual SourceSafe->Check out “…...”,文件修改完成後,用同樣的方法把文件check in 進去,別人才能訪問修改此文件。添加文件,開發人員在工程內添加了文件之後,需要把它加入到 VSS,右擊需要增加的文件,選擇 Visual SourceSafe->Add…。 刪除文件,把需要刪除的文件chechout 出來,右擊文件,選擇Delete “…”。進行此操作時,可能出現VSS操作停頓的現象,解決方法:(1)激活Windows2000的任務管理窗口,把進程 ss.exe 干掉;(2)通過 VSS 的 Explorer 窗口把沒有清除的文件刪掉。
5. 結束語
作者剛剛涉足EJB,不免學識單薄,此篇文章若有誤漏,請讀者們多多包涵。寫這篇文章的目的有兩個:(1)配置過程遇到很多問題,所以要把正確的過程寫出來,避免別人象我一樣浪費時間;(2)調配服務器過程中,我從網上獲得很多有用的信息,所以我要反饋信息,與別人共享信息資源。