WebLogic Server 8.1的發行包中帶有大量參考示例,其中有專門供jCOM使用的示例,但遺憾的是這些全部的jCOM示例,演示的都是用基于COM的前端訪問WebLogic Server上基于EJB的后端。故本文中僅提供從java前端訪問基于COM的后端的示例。
在本例中,我們構建一個簡單的銀行帳戶接口應用程序。在這個程序中,我們用jsp程序從前端訪問服務器上COM組件里包含的業務邏輯。我們假定在用戶計算機上已經安裝了WebLogic Server服務器。
一、建立JSP前端
首先,要為銀行帳戶應用程序建立JSP前端。為簡單起見,我們把表示層和業務邏輯層都一起包含到了BankAccount.jsp應用中(在使用本文源代碼時,只需把解壓后得到的BankAccount.jsp源文件復制到%WEBLOGIC_HOME%/samples/server/examples/build/examplesWebApp目錄下)。第一件需要注重的是,從Java的角度來看,引入要調用的COM組件時,沒有用任何Java熟悉的方法,使用的就是一個正常的Java類。訪問COM組件的所有底層代理機制,從表面來看都被隱藏了。實際開發中,我們一般把業務邏輯從BankAccount.jsp分離出來,以Servlet的形式放在中間層;但是在此為了演示的方便性,我們把表示層和業務層都放在jsp文件里了。請參考列表1中的代碼片斷。
列表1.BankAccount.jsp(在此僅列出主要代碼片斷)
<%! PRivate clsAccount account; %>
<% //創建一個Account COM組件并把一個指向它的句柄放入session中
Account=(clsAccount)session.getAttribute(“objAccount”);
if(account==null)
account=new clsAccount();
//會話期間跟蹤所有的用戶信息
Vector messages=(Vector)session.getAttribute(“messages”);
if(messages=null)
messages=new Vector();
//取得表單變量
String accountName=request.getparameter(“accountName”);
Boolean NEW_ACCOUNT=true;
if(accountName==null)
accountName=””;
else
NEW_ACCOUNT=accountExists(accountName);
二、建立后端帳戶COM組件
接下來,要建立后端的銀行賬戶COM組件。為了簡化,本示例假定和COM組件在同一臺計算機上運行并且選用Visual Basic 6.0來創建這里的銀行賬戶COM組件。
1.啟動Visual Basic,新建一個ActiveX Dll項目。
2.把項目名稱修改為Account,類名設置為clsAccount。
3.在clsAccount類中建立如下代碼:
'定義全局變量
Private mstrAccountNames(1 To 100) As String
Private mdblAccountBalances(1 To 100) As Double
Public Property Get AccountNames()
AccountNames = mstrAccountNames
End Property
Public Property Get AccountBalances()
AccountBalances = mdblAccountBalances
End Property
'創建一個新帳戶
Public Function Create(accountName As String, amount As Double) As Integer
Dim i As Integer
Dim flag As Boolean
i = 1
Do While (True)
If mstrAccountNames(i) = "" Then
Create = i
mstrAccountNames(i) = accountName
mdblAccountBalances(i) = amount
Exit Do
End If
i = i + 1
If i > 100 Then
Exit Do
End If
Loop
End Function
‘…………(篇幅所限,在此省略,詳見所附VB源文件)
三、在服務器上安裝COM組件
在服務器上安裝COM需要好幾項操作。上面創建的COM組件要通過jCOM公開給Java客戶機,然后,Java對象即可以象調用其它Java類一樣調用這個COM組件。
1.注冊組件
新聞熱點
疑難解答