下記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して下さい。
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); } }
志村 正信 http://seasarproject.g.hatena.ne.jp/mshimura/
S2Remoting の Interfaceに合わせて Clientを修正しました。
またKOICHIKさんに リファクタリングして頂きました。
下記の様な設定になります。
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を公開しました。
よしなかさんの提案で、Burlap Protocolも対応した V0.3を公開しました。 utf-8の処理をSkipする事を考えたのですが、当面良い案が見つかりませんので、 Hessianの 処理をそのまま使うことにしました。(よしなかさんの実装を参考に させていただきました)
必要な LIBは、Seaser2のLIBをそのまま使用して下さい。また下記も必要です。
http://www.caucho.com/hessian/download/hessian-3.0.8.jar
追加機能が必要であればコメントをお願いします。
よしなかさんの S2HessianInterceptorを使用した ClientのSampleを 追加し V0.2として公開しました。 なお Clientは s2hessian_clientと Projectを分けて明確にしました。 Version 0.1 を公開します。下記を解凍し、Eclipse 3.0 にImportして下さい。 必要な LIBは、Seaser2のLIBをそのまま使用して下さい。 S2Hessian自体は何も LIBを必要としません。
志村さんに了解をいただけたので、S2CauchoRemotingを公開します。
まだ志村さんのほうの実装を見れていないのですが、目指すところは同じだと思うので、いずれは志村さんの方にマージできればと思います。
Version 0.1 を公開します。下記をEclipse 3.0 にImportして下さい。 必要な LIBは、Seaser2のLIBをそのまま使用して下さい。 S2Hessian自体は何も LIBを必要としません。
org.seasar.s2hessian.example.TestClinet を実行すると、11Caseの Sampleが走ります。
最新の10件を表示しています。 コメントページを参照