[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 メーリングリストの案内