[Seasar-user:18391] [S2Axis2] Teeda+S2DaoのWebアプリを利用するクライアント
fukuyama
[E-MAIL ADDRESS DELETED]
2009年 8月 28日 (金) 09:55:38 JST
福山と申します。お世話になっております。
初歩的な質問ですがよろしくお願いします。
DoltengにてTeeda+S2DaoのWebアプリを作成し、それをS2Axis2にて公開し、
クライアントからデータベースの情報を取得できるようなシステムを作成しようとし
ています。
DB2にidとdataからなるHogeテーブルを作成してあります。
DoltengのデータベースビューからScaffoldアプリケーション生成によって
HogeとHogeDaoなどを作成しました。HTMLファイルから正しく動作することを確認し
ました。
http://ml.seasar.org/archives/seasar-user/2007-July/009427.html
そして、上記を参考にしてWebアプリを公開し、
クライアントからデータベースに格納されているデータの取得を試みたのですが
Teeda+S2Daoの場合、どのようにすればいいかよく分からず、
とりあえず自分なりにクライアントを作ってみたのですがうまくいきません。
根本的に間違っている気がするのでそれをここに載せるのも恥ずかしいんですが(笑
どのようにクライアントを作成すればいいのか、何かアドバイスいただけるとうれし
いです。
よろしくお願いします。
〜サーバー側〜
・Hoge.java
@Bean(table="HOGE")
public class Hoge{
@Id(IdType.IDENTITY)
private Integer id;
private Double data;
public Hoge() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public Double getData() {
return this.data;
}
public void setData(Double data) {
this.data = data;
}
----------------------------------------------------------------------------
-
・HogeDao.java
@S2Dao(bean=Hoge.class)
public interface HogeDao {
public Hoge[] selectAll();
@Arguments("ID")
public HogeselectById(Integer id);
public int insert(Hoge hoge);
public int update(Hoge hoge);
public int delete(Hoge hoge);
}
----------------------------------------------------------------------------
-
・app.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>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="app_aop.dicon"/>
<include path="teedaExtension.dicon"/>
<include path="dao.dicon"/>
<include path="dxo.dicon"/>
<include path="j2ee.dicon"/>
<include path="s2axis2.dicon"/>
<include path="s2axis2Deploy.dicon"/>
</components>
----------------------------------------------------------------------------
-
・s2axis2Deploy.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 name="HogeDao" class="sample.entity.Hoge ">
<meta name="axis-service"/>
</component>
</components>
----------------------------------------------------------------------------
-
〜クライアント側〜
・Client.java
public class Client extends TeedaTestCase {
public HogePage page;
@Override
public void setUp() throws Exception {
super.setUp();
include("convention.dicon");
include("aop.dicon");
include("app_aop.dicon");
include("teedaExtension.dicon");
include("dao.dicon");
include("dxo.dicon");
include("j2ee.dicon");
}
public void testCase01() {
page.prerender();
SingletonS2ContainerFactory.init();
HogeDao service =
SingletonS2Container.getComponent(HogeDao.class);
service.selectAll();
・・・・
}
}
----------------------------------------------------------------------------
-
・HogeDao.java
public interface HogeDao {
public HogePage[] selectAll();
public HogePage selectById(Integer id);
public int insert(HogePage hogepage);
public int update(HogePage hogepage);
public int delete(HogePage hogespage);
}
----------------------------------------------------------------------------
-
・HogePage.java
public class HogePage {
private int id;
private Double data;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Double getData() {
return data;
}
public void setData(Double data) {
this.data = data;
}
public Class initialize() {
return null;
}
public Class prerender() {
return null;
}
}
----------------------------------------------------------------------------
-
・app.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>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="app_aop.dicon"/>
<include path="teedaExtension.dicon"/>
<include path="dao.dicon"/>
<include path="dxo.dicon"/>
<include path="j2ee.dicon"/>
<include path="s2axis2.dicon"/>
<include path="s2axis2Client.dicon"/>
</components>
----------------------------------------------------------------------------
-
・s2axis2Client.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<!-- リモート呼び出しのインターセプタ 同期型要求応答形式 -->
<component name="ioRemoting"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="connector">ioConnector</property>
</component>
<!-- Axisコネクタ 同期型要求応答形式 -->
<component name="ioConnector"
class="org.seasar.remoting.axis2.connector.AxisInOutConnector">
<property name="baseURL">baseURL</property>
</component>
<!-- Axisサービス -->
<component class="org.apache.axis2.description.AxisService"
autoBinding="none"/>
<!-- 接続URL -->
<component name="baseURL" class="java.net.URL" autoBinding="none">
<arg>"http://localhost:8080/s2axis2-hoge/services/"</arg>
</component>
<!-- Webサービスのプロキシ -->
<component name="HogeDao" class="example.service.HogeDao">
<aspect>ioRemoting</aspect>
</component>
</components>
----------------------------------------------------------------------------
-
org.seasar.framework.container.ComponentNotFoundRuntimeException: [ESSR0046]
コンポーネント(interface example.service.HogeDao)が見つかりません
at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acqu
ireFromGetComponentDef(S2ContainerBehavior.java:165)
at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acqu
ireFromGetComponent(S2ContainerBehavior.java:158)
at
org.seasar.framework.container.impl.S2ContainerBehavior.acquireFromGetCompon
ent(S2ContainerBehavior.java:62)
at
org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2Container
Impl.java:124)
at
org.seasar.framework.container.SingletonS2Container.getComponent(SingletonS2
Container.java:43)
at example.logic.Client.testCase01(Client.java:32)
(←HogeDao service = SingletonS2Container.getComponent(HogeDao.class);)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:164)
at
org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.
java:519)
at
org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.ja
va:308)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81
)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.
run(JUnit4TestReference.java:45)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:3
8)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
.java:196)
開発環境
Eclipse3.4.2
DB2 express-c 9.7
Seasar2 2.4.38
Teeda1.0.13
S2axis2 0.5.0
S2Dao1.0.49
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090828/d98d952c/attachment.html>
Seasar-user メーリングリストの案内