[cubby-user:228] Re: Actionクラスの差し替え方法があればご教授いただけないでしょうか?

Yasuyuki BABA [E-MAIL ADDRESS DELETED]
2013年 3月 15日 (金) 15:14:22 JST


うまくいったみたいで、よかったです。

こちらこそ使っていただいてありがとうございます!
2013/03/13 12:50 "はっしぃ" <hasuie @ gmail.com>:

> 馬場様
>
> 前回アドバイスいただきました、NamingConventionImplを拡張しての対応で
> 期待するカスタマイズができました。
> (具体的には、#addIgonreActionClassNameというメソッドを追加しました)
> どうもありがとうございました。
>
> ここ数年、Railsの勢いがすごいですが、CubbyでもRailsに負けないくらいのサーバーサイドの
> 生産性は出せるとおもいます。むしろ、Cubbyの方が自由が効くため扱いやすいくらいです。
>
> このような素晴らしいフレームワークを開発していただき、本当に助かっております。
> 今後とも宜しくお願い致します。
>
>
>
>
> 2013年3月5日 16:29 はっしぃ <hasuie @ gmail.com>:
>
>> 馬場様
>>
>> 早々のご返信ありがとうございます。
>>
>> アクションクラスの作成は、インタフェースを使用しない方式で作成しており
>> 以下のような記述を試しておりました。
>>
>> ■標準版
>>     <initMethod name="addInterfaceToImplementationClassName">
>>       <arg>"xxx.smart.web.aaa.HogeAction"</arg>
>>       <arg>"xxx.smart.web.aaa.HogeAction"</arg>
>>     </initMethod>
>>
>> ■カスタマイズ版
>>     <initMethod name="addInterfaceToImplementationClassName">
>>       <arg>"xxx.smart.web.aaa.HogeAction"</arg>
>>       <arg>"xxx.Z001.web.aaa.Z001HogeAction"</arg>
>>     </initMethod>
>>
>> ■Java側
>> @Path("hoge")
>> public class HogeAction extends BaseWebAction {
>>     public ActionResult index() {
>>         // 標準版の処理
>>         return new JspForward("/hoge/index.jsp");
>>     }
>> }
>>
>> @Path("hoge")
>> public class Z001HogeAction extends BaseWebAction {
>>     public ActionResult index() {
>>         // カスタマイズ版の処理
>>         return new JspForward("/hoge/index_Z001.jsp");
>>     }
>> }
>>
>> 現状では、Mavenではなく env.txt での切り替えで対応しておりますので
>> アドバイスいただきました、NamingConventionImplを拡張しての対応を検討したいと
>> 思います。
>>
>> 動作確認が取れましたら、後日お知らせします。
>> どうもありがとうございました。
>>
>>
>>
>> 2013年3月5日 15:32 Yasuyuki BABA <yasuyuki.baba @ gmail.com>:
>>
>> 馬場です。
>>>
>>> アクションクラスはどのように作成されているのでしょう?
>>> NamingConventionImpl#addInterfaceToImplementationClassName
>>>
>>> を使おうとしているところから想像すると、インターフェースにアノテーションを付与し、カスタマイズ箇所はその実装クラスに実装する、ということでしょうか?
>>> Cubbyではインターフェースのアノテーションは読み取らなかったと思うので、それではうまく登録できないかとおもいます。
>>> # すみません、ちょっとうろ覚えです。
>>> NamingConventionImpl を拡張して isIgnoreClassName の中で
>>> xxx.smart.web.aaa.HogeAction(標準画面用)を smart deploy
>>> の対象外にする、というやり方だとうまく動くのではないでしょうか?
>>>
>>> 個人的には、同じクラス名にして Maven の Profile 機能でビルド時に切り替えるのが簡単かなーと思います。
>>>
>>>
>>> 2013年3月5日 14:30 はっしぃ <hasuie @ gmail.com>:
>>> > お世話になります。はっしぃと申します。
>>> >
>>> > Cubbyを利用したクラウドサービスを開発しており、顧客により画面カスタマイズが
>>> > 発生した際の対応方法を調査しております。
>>> >
>>> > 目的としては、ソース管理としては、1プロジェクトで管理しつつ
>>> > 画面のUIが大幅に変更になる場合には、個別カスタマイズで対応する方針です。
>>> >
>>> > そこで、環境によりActionクラスを差し替えたく、convention.diconの
>>> > NamingConventionImpl#addInterfaceToImplementationClassName にて
>>> > 設定を行いました。
>>> > 設定することで、複数コンポーネント登録の旨のエラーは発生しなくなりましたが
>>> >
>>> > 以下のようなエラーが発生して画面が表示できませんでした。
>>> >
>>> > java.lang.NullPointerException
>>> > at
>>> >
>>> org.seasar.cubby.internal.controller.impl.ActionProcessorImpl.process(ActionProcessorImpl.java:83)
>>> > at
>>> >
>>> org.seasar.cubby.filter.CubbyFilter$RequestProcessingInvocationImpl.proceed(CubbyFilter.java:483)
>>> > at
>>> >
>>> org.seasar.cubby.filter.CubbyFilter$RequestProcessingInvocationImpl.proceed(CubbyFilter.java:424)
>>> > at
>>> >
>>> org.seasar.cubby.plugin.AbstractPlugin.invokeRequestProcessing(AbstractPlugin.java:106)
>>> >
>>> > エラー箇所は、routing変数のアクセスでNullPointerExceptionとなっております。
>>> >
>>> > 現在のバージョンで上記要件を満たすことは可能でしょうか?
>>> > 出来ない場合は、Actionクラス内で IF文で対応するしかなさそうですが、できたらクラスごと
>>> > 差し替えたいと思い、ご質問させていただきました。
>>> >
>>> > ■Actionクラス構成
>>> > xxx.smart.web.aaa.HogeAction (標準画面用)
>>> > xxx.Z001.web.aaa.Z001HogeAction (個別カスタマイズ用)
>>> >
>>> > xxx.smart, xxx.Z001 は共に addRootPackageName で追加したスマートデプロイのパッケージです。
>>> >
>>> > ■使用バージョン
>>> > cubby-2.0.9.jar
>>> > s2-framework-2.4.40.jar
>>> >
>>> > 以上よろしくお願いいたします。
>>> >
>>> >
>>> > _______________________________________________
>>> > cubby-user mailing list
>>> > cubby-user @ ml.seasar.org
>>> > https://ml.seasar.org/mailman/listinfo/cubby-user
>>> >
>>>
>>>
>>>
>>> --
>>> BABA,Yasuyuki
>>> yasuyuki.baba @ gmail.com
>>> _______________________________________________
>>> cubby-user mailing list
>>> cubby-user @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/cubby-user
>>>
>>
>>
>
> _______________________________________________
> cubby-user mailing list
> cubby-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/cubby-user
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/cubby-user/attachments/20130315/47299d0e/attachment.html>


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