#contents *S2Hessian [#h9e77166] **概要 [#ef6a6382] 下記URLのHessian Protcolを使用し、S2ContainerのComponentをURLで指定し、 処理出来る物。 WSDLが不要であり、Dicon Fileの指定だけで呼び出せるので、開発が容易であり またSOAPに比べ Overheadが少ないので、Responseも良いと思います。 Character(コマンド)とBinary(Data) での送信ですので、DebugもTCPMONなどを使えば容易です。 http://www.caucho.com/hessian/index.xtp なお .NETからの呼び出しのProgramも開発中です。 下記からLinkして下さい。 [[Sandbox/S2HessianDotNet]] Rich Clinetを .NETで作る事も考えての事です。ご意見をよろしくお願いします。 下記が ClientのSampleです。 app.dicon <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd"> <components> <component name="testcomp" class="org.seasar.s2hessian.example.SeasarTest"> <aspect> <component class="org.seasar.s2hessian.S2HessianInterceptor"> <property name="serviceUrl">"http://localhost:8080/s2hessian/s2h/test"</property> </component> </aspect> </component> <component name="testburlap" class="org.seasar.s2hessian.example.SeasarTest"> <aspect> <component class="org.seasar.s2hessian.S2BurlapInterceptor"> <property name="serviceUrl">"http://localhost:8080/s2hessian/s2b/test"</property> </component> </aspect> </component> </components> TestAop.java package org.seasar.s2hessian.example; import java.util.ArrayList; import java.util.Date; import java.util.Hashtable; import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.S2ContainerFactory; import org.seasar.s2hessian.example.SeasarTest; /** * @author shimura * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class TestAop { public static void main(String[] args) { S2Container container = S2ContainerFactory.create("app.dicon"); SeasarTest seasarTest = (SeasarTest)container.getComponent("testcomp"); /* Test1 */ int ires=seasarTest.intPlus(30,50); System.out.println("Test1 intPlus result: " +ires); SeasarTest seasarTestb = (SeasarTest)container.getComponent("testburlap"); /* Test21 */ ires=seasarTestb.intPlus(83,5); System.out.println("BurlapTest21 intPlus result: " +ires); } } **開発者 [#q33e4e5f] 志村 正信 http://seasarproject.g.hatena.ne.jp/mshimura/ **開発情報 [#p5ed07b7] **ダウンロード [#r32092fb] S2Remoting の Interfaceに合わせて Clientを修正しました。 またKOICHIKさんに リファクタリングして頂きました。 &ref(s2-hessian-clientV0.3.zip); 下記の様な設定になります。 org.seasar.s2hessian.example.TestAopを実行するとSample実行出来ます。 (S2HessianがServerで動いているのが前提です) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd"> <components> <component name="remoting" class="org.seasar.remoting.client.interceptors.RemotingInterceptor"/> <component class="org.seasar.remoting.caucho.client.HessianConnector"> <property name="baseURL">"http://localhost:8080/s2hessian/s2h/"</property> </component> <component name="test" class="org.seasar.s2hessian.example.SeasarTest"> <aspect>remoting</aspect> </component> </components> 最低限必要な Documentを添付した V0.31を公開しました。 &ref(s2hessian-v0.31.zip); よしなかさんの提案で、Burlap Protocolも対応した V0.3を公開しました。 utf-8の処理をSkipする事を考えたのですが、当面良い案が見つかりませんので、 Hessianの 処理をそのまま使うことにしました。(よしなかさんの実装を参考に させていただきました) 必要な LIBは、Seaser2のLIBをそのまま使用して下さい。また下記も必要です。 http://www.caucho.com/hessian/download/hessian-3.0.8.jar ~ 追加機能が必要であればコメントをお願いします。 &ref(s2hessian-v0.3.zip); よしなかさんの S2HessianInterceptorを使用した ClientのSampleを 追加し V0.2として公開しました。 なお Clientは s2hessian_clientと Projectを分けて明確にしました。 Version 0.1 を公開します。下記を解凍し、Eclipse 3.0 にImportして下さい。 必要な LIBは、Seaser2のLIBをそのまま使用して下さい。 S2Hessian自体は何も LIBを必要としません。 &ref(s2hessian-v0.2.zip); 志村さんに了解をいただけたので、S2CauchoRemotingを公開します。 まだ志村さんのほうの実装を見れていないのですが、目指すところは同じだと思うので、いずれは志村さんの方にマージできればと思います。 &ref(S2CauchoRemoting.zip); Version 0.1 を公開します。下記をEclipse 3.0 にImportして下さい。 必要な LIBは、Seaser2のLIBをそのまま使用して下さい。 S2Hessian自体は何も LIBを必要としません。 org.seasar.s2hessian.example.TestClinet を実行すると、11Caseの Sampleが走ります。 &ref(s2hessian-V0.1.ZIP); **コメント [#z4a9c166] #pcomment(,10,reply) #pcomment(Comment/Sandbox/S2Hessian,10,reply)