[Seasar-user:4790] [S2Axis2] Date型のDTOを使用すると例外
松山 大樹
[E-MAIL ADDRESS DELETED]
2006年 10月 13日 (金) 13:51:44 JST
松山です。
S2Axis2 をテストしているのですが、Date型を含むDTO を受け渡しすると、
例外が発生して困っています。
s2axis2-examples のサンプル、ex03 の、EchoDto に、以下を追加してテストすると、
例外が発生します。
-----------------------------------------------------------------------
private Date dateParam = null;
public Date getDateParam() {
return dateParam;
}
public void setDateParam(Date aDateParam) {
dateParam = aDateParam;
}
-----------------------------------------------------------------------
発生する例外
-----------------------------------------------------------------------
java.lang.reflect.UndeclaredThrowableException
at org.seasar.remoting.axis2.examples.ex03.BeanEcho$$EnhancedByS2AOP$$107ebe1.echo(BeanEcho$$EnhancedByS2AOP$$107ebe1.java)
at jp.co.wowcom.test.ExamplesTestClient.main(ExamplesTestClient.java:33)
Caused by: org.apache.axis2.AxisFault: java.lang.NullPointerException
at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:287)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:457)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:399)
at org.seasar.remoting.axis2.connector.AxisInOutConnector.execute(AxisInOutConnector.java:42)
at org.seasar.remoting.axis2.connector.AbstractAxisConnector.invoke(AbstractAxisConnector.java:107)
at org.seasar.remoting.common.connector.impl.TargetSpecificURLBasedConnector.invoke(TargetSpecificURLBasedConnector.java:105)
at org.seasar.remoting.common.interceptor.RemotingInterceptor.invoke(RemotingInterceptor.java:84)
at org.seasar.remoting.axis2.examples.ex03.BeanEcho$$EnhancedByS2AOP$$107ebe1$$MethodInvocation$$echo0.proceed(MethodInvocationClassGenerator.java)
(省略)
-----------------------------------------------------------------------
サーバ側(サービス側)をデバッグモードで追ってみると、BeanEchoImpl#echo() は正常に実行され、
return も実行されています。
クライアント側のテストプログラムは次のとおりです。
-----------------------------------------------------------------------
public static void main(String[] args) {
final String PATH = "test/EchoTest.dicon";
S2Container container = S2ContainerFactory.create(PATH);
try {
container.init();
//TestService
BeanEcho echo = (BeanEcho)container.getComponent(BeanEcho.class);
EchoDto inDTO = new EchoDto();
inDTO.setBoolParam(true);
inDTO.setStrParam("ほげほげ");
EchoDto dto = echo.echo(inDTO);
System.out.println("echo=" + dto.getStrParam());
DateFormat formatter = new SimpleDateFormat("yyyy/M/d hh:mm:ss");
System.out.println("date=" + formatter.format(dto.getDateParam()));
} catch(Exception e) {
e.printStackTrace();
} finally {
container.destroy();
}
}
-----------------------------------------------------------------------
Date型のプロパティをコメントアウトすると、正常に動作します。
なお、S2Axis では、Date型でも問題なく受け渡しできています。
環境は次の通りです。
サーバ側
JDK1.5
Tomcat5.5.17
WTP の動的Webプロジェクトではなく、SYSDEO のTomcatプロジェクトでテストしています。
クライアント側
JDK1.5
S22.4.0rc-2
s2axis2-0.3.0-SNAPSHOT.jar
解決方法などありましたら教えてください。
よろしくお願いします。
--
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
::: ITシステム・インテグレートDiv.
::: Web・ソリューション&システム開発Unit.
::: 松山 大樹 - [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内