发表于: 2017-10-19 21:29:14

1 649


今天完成的事情:跑通了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



返回列表 返回列表
评论

    分享到