浏览 6143 次
锁定老帖子 主题:让SOA落地,tuscany初体验
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-29
2 建立一个java项目hello 定义接口 package soasample; import org.osoa.sca.annotations.Remotable; @Remotable public interface Hello { String say(String name); } 定义实现类 package soasample; public class HelloImpl implements Hello { @Override public String say(String name) { // TODO Auto-generated method stub System.out.println("Hello-->"+ "hello:" + name); return "hello:" + name; } } 定义文件hello.composite文件 <?xml version="1.0" encoding="UTF-8"?> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:c="http://hello" targetNamespace="http://hello" name="hello"> <component name="Hello"> <implementation.java class="soasample.HelloImpl"></implementation.java> <service name="Hello"> <interface.java interface="soasample.Hello"></interface.java> <binding.ws></binding.ws> </service> </component> </composite> 3 建立一个java项目first 定义接口 package soasample; import org.osoa.sca.annotations.Remotable; @Remotable public interface First { String first(); } 定义实现 package soasample; import org.osoa.sca.annotations.Reference; public class FirstImpl implements First { private Hello hello = null; @Override public String first() { String say = hello.say("test"); System.out.println("First-->"+ say); return say; } public Hello getHello() { return hello; } @Reference public void setHello(Hello hello) { this.hello = hello; } } 定义文件first.composite文件 <?xml version="1.0" encoding="UTF-8"?> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:c="http://first" targetNamespace="http://first" name="first"> <component name="First"> <implementation.java class="soasample.FirstImpl"> </implementation.java> <reference name="hello" target="Hello"> <interface.java interface="soasample.Hello"></interface.java> <binding.ws uri="http://192.168.204.1:8100/Hello"/> <!--此处ip端口不同,注意看控制台信息修改一下--> </reference> <service name="First"> <interface.java interface="soasample.First"></interface.java> <binding.ws></binding.ws> </service> </component> </composite> 4 启动,先启动hello项目,选中hello.composite文件 运行选择tuscany方式,启动好之后以同样方式启动first项目 你可以看到eclipse启动了3个控制台 OK,你可以以web service方式调用First,看看输出 hello控制台 Hello-->hello:test first控制台 First-->hello:test 5 tuscany比spring等IOC容器更提升了一步,将协议层彻底分离 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-30
将协议层彻底分离是个什么意思,我不懂。 希望能有原理性质的东西能拿出来讨论下,tuscany我用过他的SDO部分,感觉不错。 不知道这一块在SOA里面处于什么样的位置。 |
|
返回顶楼 | |
发表时间:2008-05-30
slaser 写道
将协议层彻底分离是个什么意思,我不懂。 希望能有原理性质的东西能拿出来讨论下,tuscany我用过他的SDO部分,感觉不错。 不知道这一块在SOA里面处于什么样的位置。 你用spring等IOC容器进行组件装配,这些组件都是在同一个jvm内,通过jvm直接调用的,tuscany不光支持同一个JVM内调用,还支持通过webservice/jms/rmi等等协议调用,但是对组件使用者来说不用关心这些具体协议 |
|
返回顶楼 | |
发表时间:2008-05-30
如果规范能得到大厂商支持的话,这种模式还是很有价值的!
关注.... |
|
返回顶楼 | |
发表时间:2008-05-30
charles qi 写道 如果规范指定的比较规范的话,这种模式还是很有价值的!
关注.... 规范制定上是没问题的,这是osoa组织制定的,几乎包括了java领域的领导者(ibm bea oracle sun sap等等) |
|
返回顶楼 | |
发表时间:2008-07-31
SUN自己的是JBI规范, SDO这些是IBM,BEA搞得
|
|
返回顶楼 | |
发表时间:2008-11-14
SCA思想的确很不错。
就是不需要写 annotation就更完美了。 |
|
返回顶楼 | |
发表时间:2008-11-27
最后修改:2008-11-27
SCA规范有Sun公司的人参与
annotation体现的是一种设计在实现之前,实现是基于良好的设计的前提。 不过这也在使用的灵活上打了一个折扣 |
|
返回顶楼 | |