[akabana-user:136] <S2Flex2>Tomcat起動時に例外が発生

nobu [E-MAIL ADDRESS DELETED]
2007年 7月 24日 (火) 12:24:19 JST


近藤(nobu)です。

S2Flex2を改めて勉強しようと思い、hirossyさんの手順をみてアプリを作り
始めたところ、Tomcat起動時にエラーが返ってきました。
ちなみにアプリは、「FlexからボタンをおしたらJavaが"Hello Normal S2Flex2
!!"という文字列を返す」というシンプルなものです。

■参考URL
http://d.hatena.ne.jp/hirossy1977/20070228/1172652229

 ■Tomcat起動時例外内容
INFO  2007-07-24 11:46:44,453 [main] Running on [ENV]ut, [DEPLOY
MODE]Hot Deploy
2007-07-24 11:46:44,453 [main] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/hoge] -
StandardWrapper.Throwable
org.seasar.framework.container.ComponentNotFoundRuntimeException:
[ESSR0046]コンポーネント(interface
org.seasar.flex2.rpc.remoting.processor.RemotingMessageProcessor)が見つ
かりません
	at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponentDef(S2ContainerBehavior.java:94)

	at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponent(S2ContainerBehavior.java:87)

	at
org.seasar.framework.container.impl.S2ContainerBehavior.acquireFromGetComponent(S2ContainerBehavior.java:43)

	at
org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:119)

	at
org.seasar.flex2.rpc.remoting.RemotingGateway.init(RemotingGateway.java:72)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
	at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)

	at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	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:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007-07-24 11:46:44,468 [main] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/hoge] -
サーブレット /hoge がload()例外を投げました
org.seasar.framework.container.ComponentNotFoundRuntimeException:
[ESSR0046]コンポーネント(interface
org.seasar.flex2.rpc.remoting.processor.RemotingMessageProcessor)が見つ
かりません
	at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponentDef(S2ContainerBehavior.java:94)

	at
org.seasar.framework.container.impl.S2ContainerBehavior$DefaultProvider.acquireFromGetComponent(S2ContainerBehavior.java:87)

	at
org.seasar.framework.container.impl.S2ContainerBehavior.acquireFromGetComponent(S2ContainerBehavior.java:43)

	at
org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:119)

	at
org.seasar.flex2.rpc.remoting.RemotingGateway.init(RemotingGateway.java:72)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
	at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)

	at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
	at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
	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:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2007/07/24 11:46:45 org.apache.catalina.core.ApplicationContext log


ファイルの配置か、設定ファイルに問題がありそうなのですが、内容がよくわ
かっていません。無視して無理やりアプリを動かしてみましたが、やはり
Java側のロジック呼出でエラーになります。


■無理やりアプリを実行
Error #2044: ハンドルされていない NetStatusEvent : level=error,
code=NetConnection.Call.Failed


上記のようなエラーは初めて見たのですが、何か原因として考えられる事
がありますでしょうか?
1点だけ手順と違うことを行っています。

■手順と違うこと
1.aop.diconはコピーしていない。 -> s2-framework-2.4.10.jarに追加する
aop.diconの内容が含まれていた為。

原因が配置にあると思い、フォルダ移動や再設定を行ったので、hirossyさん
の解説してくださったフォルダ構成とは異なったものになってしまっていま
す。どちらかというと、Dolteng(S2Flex2+S2Dao)の構成に近いです。

このエラーについて、何か御存じの方がいらっしゃいましたら、アドバイスを
お願いします。



■環境
Eclipse 3.2.1 + Language Pack
Flex Builder 2.0.1 + Hotfix2
Dolteng 0.18.1
DbLauncher 0.0.4
Kijimuna 1.1.3

■プロジェクト内ファイル構成
 bin
 html-template
 lib
 LICENSE.txt
 licenses
 src
 target
 WEB-INF
 work
 .actionScriptProperties
 .classpath
 .flexProperties
 .project
 .settings
 .tomcatplugin


■jar関係(<root>/WEB-INF/lib/に格納)
aopalliance-1.0.jar
commons-logging-1.0.4.jar
geronimo-ejb_2.1_spec-1.0.jar
geronimo-j2ee_1.4_spec-1.0.jar
geronimo-jta_1.0.1B_spec-1.0.jar
h2-2007-01-30.jar
javassist-3.4.ga.jar
log4j-1.2.13.jar
ognl-2.6.7.jar
poi-2.5.1-final-20040804.jar
s2-dao-1.0.40.jar
s2-dao-tiger-1.0.40.jar
s2-extension-2.4.10.jar
s2-flex2-1.0.2.jar
s2-flex2-tiger-1.0.0.jar
s2-framework-2.4.10.jar
s2-tiger-2.4.10.jar


■ソース"hoge.mxml"(result,faultのハンドラは実装途中)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" height="108" width="169"
xmlns:seasar="http://www.seasar.org/s2flex2/mxml">
	<mx:Script>
		<![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			private function sayBtnOnClick(e:MouseEvent):void
			{
				amf.sayHallo();	
			}
			
			private function amfOnResult(e:ResultEvent):void
			{
				trace("amfOnResult");	
			}
			
			private function amfOnFault(e:FaultEvent):void
			{
				trace("amfOnFault");	
			}
		]]>
	</mx:Script>
	

	<seasar:S2Flex2Service
		id="amf"
		destination="sayService"
		gatewayUrl="http://localhost:8080/hoge/gateway"
		showBusyCursor="true"
		result="amfOnResult(event);"
		fault="amfOnFault(event);"
	/>
		
	<mx:Label x="10" y="10" text="Javaは何て?" textAlign="center"
width="149" id="sayLabel"/>
	<mx:Button x="44" y="59" label="Javaに聞く." id="sayBtn"
click="sayBtnOnClick(event);"/>
</mx:Application>



■ソース"sayService.java"
package hoge.service;

public interface sayService {
	String sayHallo();
}


■ソース"sayServiceImpl.java"
package hoge.service.impl;

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

import hoge.service.sayService;

@RemotingService
public class sayServiceImpl implements sayService {

	public String sayHallo() {
		return "Hello Normal S2Flex2 !!";
	}

}



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