[akabana-user:46] s2flex2 サービスの登録につきまして

小橋川 koba-g @ ospo.co.jp
2006年 10月 27日 (金) 11:06:32 JST


お世話になっております。
小橋川です。

質問なんですが
現在
s2fles2を利用してFlex2との連携をテストしています。

flex2-example-1.0.0-rc-3.zip
をダウンロードして

プロジェクト内に
サービスを追加して
Flex2からサービスを呼び出しているのですが
下記のエラーが出てしまいます。

[エラー内容]
[EFLX0001]適用可能なServiceInvoker[dbTestService]が見つかりません。
org.seasar.flex2.rpc.remoting.service.exception.InvokerNotFoundRuntimeException: 
[EFLX0001]適用可能なServiceInvoker[dbTestService]が見つかりません。
 at 
org.seasar.flex2.rpc.remoting.service.impl.RemotingServiceInvokerChooserImpl.chooseInvoker(RemotingServiceInvokerChooserImpl.java:41)
 at 
org.seasar.flex2.rpc.remoting.message.processor.impl.MessageBodyProcessorImpl.processBody(MessageBodyProcessorImpl.java:96)
 at 
org.seasar.flex2.rpc.remoting.message.processor.impl.MessageBodyProcessorImpl.process(MessageBodyProcessorImpl.java:65)
 at 
org.seasar.flex2.rpc.remoting.message.processor.impl.MessageProcessorImpl.process(MessageProcessorImpl.java:64)
 at 
org.seasar.flex2.rpc.remoting.processor.impl.RemotingMessageProcessorImpl.process(RemotingMessageProcessorImpl.java:49)
 at 
org.seasar.flex2.rpc.remoting.RemotingGateway.doPost(RemotingGateway.java:55)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at 
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
 at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
 at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
 at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
 at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
 at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 at java.lang.Thread.run(Unknown Source)

---------------- 設定ファイル --------------------------
[convention.dicon]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
 "http://www.seasar.org/dtd/components24.dtd">
<components>
 <component 
class="org.seasar.framework.convention.impl.NamingConventionImpl">
  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.add"</arg>
  </initMethod>
  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.check"</arg>
  </initMethod>
  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.param"</arg>
  </initMethod>
  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.performance"</arg>
  </initMethod>
 <!--    Dbtestサービスの追        ------------------- ここを追加
  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.dbtest"</arg>
  </initMethod>

  <initMethod name="addRootPackageName">
   <arg>"examples.flex2.camera.snapshot"</arg>
  </initMethod>
 </component>
</components>

---------------- ソース --------------------------
[DbTestService.java]
package examples.flex2.dbtest.service;

import java.util.ArrayList;

public interface DbTestService {

 public ArrayList getDbArray();

}

----------------------------------------------------------
[DbTestServiceImple.java]
package examples.flex2.dbtest.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.seasar.flex2.rpc.remoting.service.annotation.RemotingService;

import examples.flex2.dbtest.service.DbTestService;
import examples.flex2.dbtest.service.dao.AreaMstDao;
import examples.flex2.dbtest.service.dao.Area_mst;

/**
 *
 * @ RemotingService
 */
@RemotingService
public class DbTestServiceImple implements DbTestService{

 private AreaMstDao areaDao;


    public void setAreaDao(AreaMstDao areaDao) {
  this.areaDao = areaDao;
 }


 public ArrayList getDbArray() {
        ArrayList list = (ArrayList)areaDao.getArea();
        Map data;

        ArrayList rlist = new ArrayList();
        for(int i = 0; i < list.size();i++){
         Area_mst amst = new Area_mst();
         amst = (Area_mst)list.get(i);

         data = new HashMap();
         data.put("col1", i);
            data.put("col2", amst.getArea_id());
            data.put("col3", amst.getArea_name());
            data.put("col4", amst.getVieworder());
            rlist.add(data);

        }

        return rlist;
    }

}
----------------------------------------------------------
[Dbtest.mxml]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns="*"
    layout="absolute"
    xmlns:s2="http://www.seasar.org/s2flex2/mxml"
>
    <mx:Script source="DbTest_script.as" />
    <s2:S2Flex2Service id="dbTestService" destination="dbTestService"
     result="onResult(event)" fault="onFault(event)" showBusyCursor="true" 
/>

    <mx:TextInput id="size" text="1000" x="10" y="10" width="57"/>
    <mx:Button x="75" y="10" label="get data" id="addBtn" width="81" 
tabIndex="3" click="onClickHander(event)"/>
 <mx:DataGrid id="datagrid" right="10" left="10" top="70" bottom="10" >
  <mx:columns>
   <mx:DataGridColumn headerText="RowCount"  dataField="col1"/>
   <mx:DataGridColumn headerText="Area_ID"   dataField="col2"/>
   <mx:DataGridColumn headerText="Area_Name" dataField="col3"/>
   <mx:DataGridColumn headerText="View"      dataField="col4" 
editable="true"/>
  </mx:columns>
 </mx:DataGrid>

 <mx:Script>
     <![CDATA[

      private function onClickHander( event:Event ):void{
          dbTestService.getDbArray( parseInt( size.text ));
      }
     ]]>
 </mx:Script>
</mx:Application>
----------------------------------------------------------

http://s2flex2.sandbox.seasar.org/ja/に
「Flexから呼び出すServiceをアノテーションを利用して制御」
とあるので

上記でいいと思っていいるのですが
他に設定するdiconなどがあるのでしょうか

以上 宜しくお願いします。




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