发表于: 2017-10-19 21:29:14
1 651
今天完成的事情:跑通了tuscandy的计算器的小例子 基本是参照 志勇的代码来的 然而它的代码居然有问题 跑起来报错
还好现在对错误无感 百度一下 与别的对比一下 就知道错误出现在这里
<component name="CalculatorServiceComponent">
<implementation.java class= "com.jnshu.service.Calculator"/>
<reference name="add" target="AddComponent"/>
<reference name="subtract" target="SubtractComponent"/>
<reference name="multiply" target="MultiplyComponent"/>
<reference name="divide" target="DivideComponent"/>
</component>
这里面原来志勇的日报里面的代码少东西
然后就是理解这些代码 以及tuscandy的架构 分为跟中服务组件
然后把这个计算器的小例子 拆分 成 tuscandy rmi
回头看了java rmi的小例子的代码 整体思路一直 还是接口实现类 在server 然后注册rmi
Client只有接口
把这个代码简单的贴一下 server目录结构
这里面只有主函数CalculatorServiceClient 与配置文件有所更改
public class CalculatorServerClient {
public static void main(String[] args) throws IOException {
Node node = NodeFactory.newInstance().createNode("Calculator.composite");
node.start();
System.out.println("service启动");
// ICalculator c = node.getService(Calculator.class,"CalculatorServiceComponent");
// System.out.println(c.add(2, 2));
// System.out.println("3 + 2 = " + c.add(3, 2));
// System.out.println("3 - 2 = " + c.subtract(3, 2));
// System.out.println("3 * 2 = " + c.multiply(3, 2));
// System.out.println("3 / 2 = " + c.divide(3, 2));
// node.stop();
}
}
配置文件注释掉了启动的部分
<?xml version="1.0" encoding="UTF-8"?>
<composite
xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
targetNamespace="http://com.jnshu"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
xmlns:sample="http:///com.jnshu"
xmlns:scallop="http://scallop/xmlns/sca/1.1"
name="Calculator">
<!--xmlns="http://www.osoa.org/xmlns/sca/1.0"-->
<component name="CalculatorServiceComponent">
<implementation.java class= "com.jnshu.service.Calculator"/>
<service name="Calculator">
<interface.java interface="com.jnshu.service.ICalculator"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:8181/CalculatorRMIService"/>
</service>
<reference name="add" target="AddComponent"/>
<reference name="subtract" target="SubtractComponent"/>
<reference name="multiply" target="MultiplyComponent"/>
<reference name="divide" target="DivideComponent"/>
</component>
配置文件增加了一个注册端口号 也挺好理解的
注意他的文件头 这里有个报错 我思考了一下又仿照了了别的例子 改好了 不过还不是很理解
然后Client
public class CalculatorClient {
public static void main(String[] args) throws Exception {
ICalculator c= (ICalculator) Naming.lookup("//127.0.0.1:8181/CalculatorRMIService");
System.out.println(c.add(1, 2));
System.out.println("3 + 2 = " + c.add(3, 2));
System.out.println("3 - 2 = " + c.subtract(3, 2));
System.out.println("3 * 2 = " + c.multiply(3, 2));
System.out.println("3 / 2 = " + c.divide(3, 2));
}
接口需要一致 就成功了
然后分离我的原来的程序
明天计划的事情:提交任务九 申请复盘 研究一下聚金融的需求
遇到的问题:跑例子报错
收获:更加深入的理解了tuscandy
评论