[Seasar-user:16521] [S2Axis2] クライアント側の設定について

松山 大樹 [E-MAIL ADDRESS DELETED]
2008年 12月 17日 (水) 12:23:29 JST


松山です。

Teeda でも、SAStruts でもない、普通のServlet しかないWebアプリケーションから、
S2Axis2 を使用して、Webサービス(社内) からデータを取得しようとしています。

Webサービスは正常に動作しています。

クライアント側、つまり、Webアプリケーションでは、次のようにサービスを
呼び出しています。

------------------------------------------------------------------------------
■Servlet
public void doGet(HttpServletRequest aRequest, HttpServletResponse aResponse)
 throws ServletException, IOException {
     :
     :
  S2Container container = SingletonS2ContainerFactory.getContainer();
  TestLogic testLogic = (TestLogic)container.getComponent(TestLogic.class);
  UserInfoDto userInfo = testLogic.getUserInfo(userNo);
  System.out.println("userInfo=" + userInfo);
    :
    :
}

■TestLogic
public class TestLogic {
  //Service
  private UserInfoService userInfoService = null;

  public UserInfoDto getUserInfo(String aUserNo) {
      UserInfoDto dto = userInfoService.getUserInfo(aUserNo);
           :
           :
      return dto;
  }

  public void setUserInfoService(UserInfoService aUserInfoService) {
    userInfoService = aUserInfoService;
  }
------------------------------------------------------------------------------

実行すると、「TestLogic のプロパティuserInfoService が見つからない」という
警告が出て、userInfoService に何もDI されていません。

Servlet#doGet() で、

  UserInfoService userInfoService = (UserInfoService)container.getComponent(UserInfoService.class);

とやると、正常にインスタンスが取得でき、サービスを実行できます。

dicon ファイルには、

<component class="jp.co.hoge.service.UserInfoService">
  <aspect>ioRemoting</aspect>
</component>

と定義してあります。

また、TestLogic のDI は、

<component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
  <property
name="instanceDef">@[E-MAIL ADDRESS DELETED]</property>
    <initMethod name="addClassPattern">
      <arg>"jp.co.hoge"</arg>
      <arg>".*Logic"</arg>
    </initMethod>
</component>

と定義しています。

userInfoService をDI するには、何が必要でしょうか?

よろしくお願いします。


-- 
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
:::   ICTシステムインテグレートサービスDiv.
:::  Webソリューション開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]
:::      tel 045-683-3684 fax 020-4622-7043



Seasar-user メーリングリストの案内