Mule の CXF を試してみる。
とりあえず ルーティングとか変換は置いといて、まずは単なる一個の Service Component をWebサービスとして呼んでみたい。
■ 前提
■ 仕様- Mule + CXF でサーバ時刻を得る Web サービス を実装
- クライアントから与えられた書式で時刻をフォーマットして返す
■ プロジェクト作成- Mule Project を新規作成。プロジェクト名は current-time とした。
- conf 下に current-time-config.xml を書く
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
xsi:schemaLocation="
http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd">
<model name="currentTime">
<service name="currentTimeSC">
<inbound>
<cxf:inbound-endpoint
address="http://localhost:65082/services/currentTimeSC"
serviceClass="ex1.CurrentTimeService"/>
</inbound>
<component class="ex1.CurrentTimeServiceImpl"/>
</service>
</model>
</mule>
- Java コードは以下のようにした。
@WebService
public interface CurrentTimeService {
@WebResult(name="currentTime")
public String currentTime(@WebParam(name="pattern") String pattern);
}
public class CurrentTimeServiceImpl implements CurrentTimeService {
@Override
public String currentTime(String pattern) {
try {
return new SimpleDateFormat(pattern).format(new Date());
} catch (Exception ex) {
return ex.getMessage();
}
}
}
■ 実行 - [Run Configurations...]/"Local Mule Server" で以下のように設定
Name | current-time と入力(適当でOK) |
Project | current-time を選択 |
Configuration Files | current-time-config.xml |
- [Run]押下で実行
◆ soapUI で確認
- http://localhost:65082/services/currentTimeSC/?wsdl を指定してプロジェクト作成
- pattern 要素に yyyy/MM/dd HH:mm:ss と指定すると、2010/01/12 16:47:53といった形式で currentTime要素が返される。
- pattern 要素を変えると、時刻の書式が変わる事も確認できる。
◆ ブラウザ で確認
0 件のコメント:
コメントを投稿