9. 4.クライアント モジュールの実
装
■ Service ・ Proxy インターフェースの作成
① ShohinServiceの作成
② ShohinServiceAsync の作成
10. 4.クライアント モジュールの実
装
ShohinService の作成
a )マーカーインターフェースである RemoteService を継承したサービ
スの作成
b )サーバーが提供するサービスをメソッドとして宣言する。
public interface ShohinService extends RemoteService {
public List shohin(String shohinMakerCode);
}
11. 4.クライアント モジュールの実
装
② ShohinServiceAsync の作成
a )メソッドの戻り値を void とする
b ) ShohinService のメソッドに AsyncCallback 型のオブジェクトを追加
する。
c )非同期での戻り値を AsyncCallback 型のオブジェクトで受け取る。
public interface ShohinServiceAsync {
public void shohin(String shohinMakerCode,AsyncCallback callback);
}
12. 5.サーバー モジュールの実装
■ サービスメソッドの作成とサーブレット登録
① ShohinServiceImpl の作成
② Servlet への登録
13. 5.サーバー モジュールの実装
ShohinServiceImpl の作成
a ) HttpServlet を継承している RemoteServiceServlet を継承する。
b ) ShohinService を実装する。
c )サービスクラスは、サーブレットとして実行されるのでスレッドセー
フにする。
public class ShohinServiceImpl extends
RemoteServiceServlet implements ShohinService {
public List shohin(String shohinMakerCode) {
:
return list;
内容は次ページに
}
}
14. 5.サーバー モジュールの実装
ShohinServiceImpl の作成
a ) shohin メソッドの内容
Class.forName("org.postgresql.Driver");
Connection con =
DriverManager.getConnection("jdbc:postgresql://*****", "*****",
"*****");
String sql = "select * from shohin where shohin_maker_cd = ?;";
PreparedStatement st = con.prepareStatement(sql.toString());
st.setString(1,shohinMakerCode);
Shohin クラスは
ResultSet rs = st.executeQuery();
while (rs.next()) { IsSerializable
Shohin shohin = new Shohin(); を
shohin.setShohinCd(rs.getString(1));
: 実装した
list.add(shohin); JavaBean
}
return list;
15. 5.サーバー モジュールの実装
JavaBean(Shohin) の内容
a )プロパティの定義とゲッター・セッターのみ
public class Shohin implements IsSerializable {
private String shohinCd; 他にも使用でき
private String shohinName; る型の限定があ
: ります
public Shohin(){ (次ページへ)
}
public String getShohinCd() {
return shohinCd;
}
public void setShohinCd(String shohinCd) {
this.shohinCd = shohinCd;
}
:
}
16. 5.サーバー モジュールの実装
RPC 通信で使用できる型
a )基本型・参照型・配列・クラス・ユーザ定義型があります
基本型
char 、 byte 、 short 、 int 、 long 、 boolean 、 float 、 double
参照型
String 、 Date 、 Char 、 Byte 、 Short 、 Integer 、 Long 、 Boolean 、 Float
、 Double
配列・クラス
配
列、 List 、 Map 、 Set 、 ArrayList 、 HashMap 、 HashSet 、 Stack 、 Vecto
r、
AbstractList 、 AbstractCollection 、 AbstractMap 、 AbstractSet 、 Collectio
n
ユーザ定義型
IsSerializable インターフェースを実装したユーザ定義クラス