WebLogic Integration 8.1 へのアップグレード
![]() |
![]() |
![]() |
![]() |
WebLogic Workshop 7.0 (Service Pack 2) では、アプリケーション ビュー コントロールを使って J2EE コネクタ アーキテクチャ アダプタ経由でエンタープライズ システムにアクセスする Java Web サービス (Java Web Services : JWS) を作成することが可能でした。WebLogic Integration 8.1 では、これらのコントロールが全面的に再構成され、API も変更されました。このため、以下の手順で説明するように、アプリケーション ビュー コントロールを手動でアップグレードする必要があります。
http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/workshop/guide/migration/conMigratingWorkshopApplications.html
たとえば、DMBS1Service.jws
というファイルに次の記述があるとします。
public class DBMS1Service
{
/**
* @jws:control
*/
private DBMS1Controlm_dbms
;
/** @jws:context */
JwsContext context;
...
たとえば、DBMS1Control.ctrl
ファイルに次の記述があるとします。
import weblogic.jws.control.ApplicationViewControl;
/**
* @jws:av-identity name="DBMS.DBMS1" user-id="system" password="password"
*/
注意 : アプリケーション ビュー コントロールの作成については、次の URL にある WebLogic Workshop ヘルプの「新しいアプリケーション ビュー コントロールを作成する」を参照してください。
http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/integration/controls/controlsAppViewCreate.html
注意 : WebLogic Workshop 7.0 (Service Pack 2) で作成されたコントロールには .ctrl
拡張子が付いていますが、WebLogic Workshop 8.1 で作成されるコントロールには .jcx
拡張子が付きます。
DBMS1Control
というコントロール、GetAllCustomers
というサービス、および次のドキュメントを記述する応答スキーマがあるとします。
<Rows>
<Row>
<FIRSTNAME>Joe</FIRSTNAME>
<LASTNAME>User</LASTNAME>
</Row>
</Rows>
DBMS1Control.ctrl
ファイル内の内部クラスは、次のようになります。
public static class GetAllCustomersResponse
implements java.io.Serializable
{
public static class Rows implements java.io.Serializable
{
public Row[] Row;
}
public static class Row implements java.io.Serializable
{
public java.lang.String FIRSTNAME;
public java.lang.String LASTNAME;
}
}
さらに、JWS には次のように応答行から氏名を取得するコードが記述されます。
DBMS1Control.GetAllCustomersResponse.Rows rows =
m_dbms.GetAllCustomers();
DBMS1Control.GetAllCustomersResponse.Rows.Row[] custs =
rows.Row;
for (int i=0; i < custs.length; i++)
{
DBMS1Control.GetAllCustomersResponse.Row cust = custs[i];
String firstName = cust.FIRSTNAME;
String lastName = cust.LASTNAME;
System.out.println("First name=" + firstName + "last name=" +
lastName);
}
DBMS1.jcx
という DBMS1 アプリケーション ビューからコントロール インスタンスが生成されます。
public interface DBMS1 extends ApplicationViewControl
{
public wlai.dbms1GetAllCustomersResponse.RowsDocument
GetAllCustomers()
throws Exception;
}
JWS (またはビジネス プロセス JWF ファイル) 内のコードは次のようになります。
wlai.dbms1GetAllCustomersResponse.RowsDocument response =
m_dbms.GetAllCustomers();
wlai.dbms1GetAllCustomersResponse.Rows.Row[] custs =
response.getRows().getRowArray();
for (int i=0; i < custs.length; i++)
{
wlai.dbms1GetAllCustomersResponse.Rows.Row cust = custs[i];
String firstName = cust.getFIRSTNAME();
String lastName = cust.getLASTNAME();
System.out.println("First name=" + firstName + " last name=" +
lastName);
}
ここからわかるように、このコードは WebLogic Integration 7.0 と WebLogic Integration 8.1 の両方の JWS ファイルで類似しています。ただし、クラス名とインタフェース名は変更されています。一般に、要求の XBean タイプの名前は次のように構成されます。
wlai.<ネームスペース URI の変形名>.<小文字に変更された AppView 名><サービス名>.<ルート要素名>Document
変形操作によってスラッシュがドットで置換され、各修飾子の最初の文字が小文字に変更されます。
<ネームスペース URI の変形名>
は、AI (Application Integration) リポジトリ内のスキーマを含んでいるネームスペースの限定名と同じです。たとえば、Folder1.Folder2.Schema1
は、URI として Folder1/Folder2
を使用します。変形名は folder1.folder2
です。変形され、小文字に変更された AppView 名は、小文字で表記された AppView 名の最初の文字に相当します。
![]() ![]() |
![]() |
![]() |