[Seasar-user:8614] [S2Flex2]外部ライブラリ内のRemotingServiceクラスを公開できない

笹部 敦之 [E-MAIL ADDRESS DELETED]
2007年 6月 25日 (月) 00:22:44 JST


笹部と申します。

S2Flex2を利用する外部ライブラリを、別のS2Flex2アプリケーションから
RemotingServiceとして公開できない問題を抱えております。

メーリングリスト等で同様の問合せがなかったか確認いたしましたが
解決に至りませんでしたので、投稿させていただきました。


EclipseでS2Flex2を使い、複数のアプリケーションを作成しているのですが
それらで共有すべき部分を外部ライブラリ化する必要があります。

まずChuraを使って、外部ライブラリ用のプロジェクトを作成し、
そのプロジェクト内でRemotingServiceクラスの実行を確認しました。

次に利用側のプロジェクトから外部ライブラリの参照をおこない、
convention.diconのNamingConventionImplに
外部ライブラリ用のaddRootPackageNameを追加しました。

期待値としては、この時点で利用側のプロジェクトから該当する
RemotingServiceクラスのメソッドが公開され、
Flexアプリケーションから参照ができて欲しいのですが・・・
下記のエラーが出力されてしまいます。

■convention.diconの該当部

<initMethod name="addRootPackageName">
<arg>"jp.co.xxx.local"</arg>
</initMethod>
<initMethod name="addRootPackageName">
<arg>"jp.co.xxx.lib"</arg>
</initMethod>

■エラーメッセージ
[EFLX0001]適用可能なServiceInvoker[testService]が見つかりません。


Seasar2.3で外部ライブラリ化したコンポーネットを利用側のプロジェクトで
使用したときは、diconファイルにパッケージ名を含めたクラス名を
明示的に記述した覚えがありますが、Seasar2.4のSMART deployを
利用する場合は、何か注意することがあるのでしょうか?

その後、app.diconにComponentAutoRegisterを記述して
「ファイルシステムまたはJarファイルからクラスを検索としてコンポーネント
を自動登録するコンポーネント」
をすれば良いのでは・・・と考えたのですが、こちらもエラーになってしまいま
した。

■app.diconの該当部

<component
class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
<initMethod name="addReferenceClass">
<arg>@[E-MAIL ADDRESS DELETED]</arg>
</initMethod>
<initMethod name="addClassPattern">
<arg>"jp.co.xxx.lib.service.impl"</arg>
<arg>"*.*Impl"</arg>
</initMethod>
</component>

■エラーメッセージ

2007-06-25 00:03:00,565 [main] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/TicketLibrary]
-
StandardWrapper.Throwableorg.seasar.framework.exception.OgnlRuntimeException:
[ESSR0073]OGNLで例外が発生しました。理由はjp.co.xxx.lib.service.impl at
file:///C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/app.dicon(13)


お手数お掛け致しますが、アドバイスの程よろしくお願いいたします。





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