浏览 1029 次
|
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-05-29 关键字: java
1 安装tuscany插件 http://archive.apache.org/dist/incubator/tuscany/java/sca/1.2-incubating/updatesite/
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容器更提升了一步,将协议层彻底分离 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-30
将协议层彻底分离是个什么意思,我不懂。 希望能有原理性质的东西能拿出来讨论下,tuscany我用过他的SDO部分,感觉不错。 不知道这一块在SOA里面处于什么样的位置。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-30
slaser 写道
将协议层彻底分离是个什么意思,我不懂。 希望能有原理性质的东西能拿出来讨论下,tuscany我用过他的SDO部分,感觉不错。 不知道这一块在SOA里面处于什么样的位置。 你用spring等IOC容器进行组件装配,这些组件都是在同一个jvm内,通过jvm直接调用的,tuscany不光支持同一个JVM内调用,还支持通过webservice/jms/rmi等等协议调用,但是对组件使用者来说不用关心这些具体协议 |
|
| 返回顶楼 | |
|
最后更新时间:2008-06-02
如果规范能得到大厂商支持的话,这种模式还是很有价值的!
关注.... |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-30
charles qi 写道 如果规范指定的比较规范的话,这种模式还是很有价值的!
关注.... 规范制定上是没问题的,这是osoa组织制定的,几乎包括了java领域的领导者(ibm bea oracle sun sap等等) |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-31
SUN自己的是JBI规范, SDO这些是IBM,BEA搞得
|
|
| 返回顶楼 | |






