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