<div>$B=i$a$FEj9F$5$F$$$?$@$-$^$9!#;3ED$H?=$7$^$9!#(B</div>
<div>S2Axis2$B$K$D$$$F<ALd$,$4$6$$$^$9!#(B</div>
<div>&nbsp;</div>
<div>$B%/%i%$%"%s%HB&$GF14|7?MW5a1~Ez7A<0$N(BAxis$B%3%M%/%?!J(BAxisInOutConnector$B!K$r;HMQ$7$F$$$k$N$G$9$,!"(B</div>
<div>$B%^%k%A%9%l%C%I$GF1;~$K%5!<%S%98F$S=P$7$r9T$C$?:]$K!"%j%b!<%H%5!<%PB&$GC`<!=hM}$5$l$F$7$^$$$^$9!#(B</div>
<div>&nbsp;</div>
<div>$B!ZNc![(Bs2axis2-examples $B$N(Borg.seasar.remoting.axis2.examples.ex01$B$r2~B$$7$?$b$N$G$9!#(B</div>
<div>$B$=$NB>$N@_Dj$O$=$N$^$^$G$9!#(B</div>
<div>&nbsp;</div>
<div>$B"#%5!<%PB&(B</div>
<div>public class EchoImpl implements Echo {<br>&nbsp;&nbsp;&nbsp; public String echo(int id, String message) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;---start server---&quot; + id);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.sleep(5*1000);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (InterruptedException e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;---end server---&quot; + id);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return &quot;[id = &quot; + id + &quot;] &quot; + message;<br>
&nbsp;&nbsp;&nbsp; }<br>}</div>
<div>&nbsp;</div>
<div>$B"#%/%i%$%"%s%HB&(B</div>
<div>public class EchoClient extends Thread {</div>
<div>&nbsp;&nbsp;&nbsp; private Echo service;</div>
<div>&nbsp;&nbsp;&nbsp; public void run() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int id = (int)System.currentTimeMillis();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String msg = &quot;echo message&quot;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;=============start=============&quot; + id);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service.echo(id, msg);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;=============end=============&quot; + id);<br>&nbsp;&nbsp;&nbsp; }</div>
<div>&nbsp;&nbsp;&nbsp; public void setEcho(Echo echo) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.service = echo;<br>&nbsp;&nbsp;&nbsp; }</div>
<div>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SingletonS2ContainerFactory.setConfigPath(&quot;org/seasar/remoting/axis2/examples/ex01/EchoTest.dicon&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SingletonS2ContainerFactory.init();</div>

<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S2Container container = SingletonS2ContainerFactory.getContainer();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Echo echo1 = (Echo)container.getComponent(Echo.class);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Echo echo2 = (Echo)container.getComponent(Echo.class);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EchoClient client1 = new EchoClient();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EchoClient client2 = new EchoClient();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client1.setEcho(echo1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client2.setEcho(echo2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client1.start();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client2.start();<br>
&nbsp;&nbsp;&nbsp; }<br>}</div>
<div>&nbsp;</div>
<div>
<div>$B!&(BEchoClient $B$r<B9T$9$k$H!"(B</div>
<div>=============start=============$B%9%l%C%I#1(B</div>
<div>=============start=============$B%9%l%C%I#2(B</div>
<div>---start server---$B%9%l%C%I#1(B</div>
<div>---end server---$B%9%l%C%I#1(B</div>
<div>
<div>=============end=============$B%9%l%C%I#1(B</div>
<div>
<div>---start server---$B%9%l%C%I#2(B</div>
<div>---end server---$B%9%l%C%I#2(B</div>
<div>=============end=============$B%9%l%C%I#2(B</div>
<div>$B$N$h$&$K$J$C$F$7$^$$$^$9!#(B</div>
<div>&nbsp;</div>
<div>$B!&4|BT$7$F$$$?$N$O!"(B</div>
<div>
<div>=============start=============$B%9%l%C%I#1(B</div>
<div>=============start=============$B%9%l%C%I#2(B</div>
<div>---start server---$B%9%l%C%I#1(B</div>
<div>---start server---$B%9%l%C%I#2(B</div>
<div>---end server---$B%9%l%C%I#1(B</div>
<div>---end server---$B%9%l%C%I#2(B</div>
<div>
<div>=============end=============$B%9%l%C%I#1(B</div>
<div>
<div>=============end=============$B%9%l%C%I#2(B</div>
<div>$B$N$h$&$K!"%9%l%C%I#1$N1~Ez$rBT$?$:$K%9%l%C%I#2$N=hM}$b9T$C$F$[$7$$$N$G$9$,(B</div>
<div>$B%9%l%C%I4V$G$bF14|$r<h$k$h$&$J;EMM$J$N$G$7$g$&$+!)(B</div>
<div>$B$=$l$H$b!"(Bs2axis2-client.dicon $B$N@_Dj!J$b$7$/$O$=$N$[$+$N(Bdicon$B!K$rJQ99$7$J$1$l$P$J$i$J$$$N$G$7$g$&$+!)(B</div>
<div>$B"((Binstance=&quot;prototype&quot; $B$KJQ99$7$F$_$?$N$G$9$,!"$&$^$/$$$-$^$;$s$G$7$?!#(B</div>
<div>&nbsp;&nbsp;&nbsp; &lt;component name=&quot;ioConnector&quot; class=&quot;org.seasar.remoting.axis2.connector.AxisInOutConnector&quot; instance=&quot;prototype&quot; &gt;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>$B!&$^$?!"MW7o$H$7$F%5!<%PB&$G$bJBNs=hM}$r9T$o$J$1$l$P$J$i$J$$$N$G!"(B</div>
<div>s2axis2-client.dicon $B$N@_Dj$G2?$H$+$J$i$J$$>l9g$O!"(B</div>
<div>org.seasar.remoting.axis2.connector.AbstractRPCConnector#invoke</div>
<div>$B$N(Bsynchronized$B%V%m%C%/$r$O$:$9$H$$$&BP1~$r8!F$$r$7$F$$$k$N$G$9$,!"(B</div>
<div>$B$=$l$,:GA1$NJ}K!$J$N$G$7$g$&$+!)(B</div>
<div>$B!J@\B3@h$O#1$D$7$+$J$$$N$G!"(BOptions$B$N6%9g$OLdBj$J$$!)$H9M$($F$$$k$N$G$9$,!&!&!K(B</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>$B0J>e!"59$7$/$*4j$$CW$7$^$9!#(B</div>
<div>&nbsp;</div></div></div></div></div></div></div>