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