JXTA Shell简介
遗忘在角落里的一点记录,今天重新搬到这里,备份下。
1. search -r -a Name -v JXTASPEC:com.sams.p2p.primecruncher
该语句说明从Jxta网络中搜索属性为Name,值为JXTASPEC:com.sams.p2p.primecruncher的节点。-r表 示开始远程搜索。但此时你还不能从env(环境变量中看到你想要的adv)
2. search -a Name -v JXTASPEC:com.sams.p2p.primecruncher
该命令将从本地cache中搜索目标,此时,因为刚刚已经从远程搜索到内容,所以当你再次用env时, 能看到搜索到的adv0(一般是这个)
3. cat adv0
该命令是查看adv0的结构(XML文档结构)。
4. cat -p adv0
该命令可以简化查看adv0的结构(把XML的一些标记全部去掉了)
5. importfile -f E:/share/primeserver_pipe.adv primepipe
该命令可以把一个文件的内容赋予给一个环境变量。环境变量名为primepipe,此处的目录间隔不能用 需要使用/(Linux中的习惯)。
6. cat primepipe
该命令可以查看一下环境变量primepipe的内容和文件primeserver_pipe.adv是否相同,正确的话应该 是相同的。
7. primepipeadv=mkadv primepipe
使用mkadv根据primepipe所指向的XML文档,转化为advertisement信息,并赋值给primepipeadv
在jxta shell 2.3.x以上版本中mkadv后面不带什么参数,直接根环境变量就可以了。
8. primeservice=mkpipe -o primepipeadv
有了管道的advertisement以后,就可以根据advertisement来建立管道,一般首先要建立一个输出管 道,这样就可以向server输出内容,以供它进行计算。使用mkpipe来建立管道,-o参数代表输出管道 ,-i代表输入管道,primeservice代表建立的输出管道环境变量。
以上工作完成以后,在shell中,就可以和远程对等节点进行通信,要通信首先就要创建一条消息
9. querymessage=mkmsg
改命令就可以完成创建一条空的消息。不包含任何消息元素。
10. importfile -f E:/share/high.xml highdoc
把high.xml文件内容导入highdoc,使用cat highdoc将看到如下所示:
JXTA>cat highdoc
<?xml version="1.0" encoding="UTF-8"?>
<high>
100
</high>
11. importfile -f E:/share/low.xml lowdoc
使用cat lowdoc将看到如下所示:
JXTA>cat lowdoc
<?xml version="1.0" encoding="UTF-8"?>
<low>
10
</low>
12. importfile -f E:/share/id.xml iddoc
使用cat iddoc将看到如下所示:
JXTA>cat iddoc
<?xml version="1.0" encoding="UTF-8"?>
<id>
12345
</id>
13. put querymessage HIGH_INT highdoc
使用put命令把文件内容添加到消息中去,数据检索服务决定了,我们需要用已经定义的环境变量来 对每一个消息元素进行标记,此处的HIGH_INT就是已经定义的环境标量。该变量定义在服务器端的协 议里面
14. put querymessage LOW_INT lowdoc
15. put querymessage JOBID iddoc
16. impipeadv=mkadv primepipe
用于创建一个输入管道
17. inputpipe=mkpipe -i impipeadv
创建了一条输入管道
18. exportfile e:/share/inpipeadv.adv impipeadv
此命令是把环境变量中的内容输出到文件中去,但始终没有成功,文件能成功创建,但没有内容。
19. importfile -f e:/share/inpipeadv.adv pipeadvdoc
读入文件内容到pipeadvdoc
20. put querymessage PIPEADV pipeadvdoc
添加消息元素
21. send primeservice querymessage
向输出管道输出一条消息,但出错,核查结果为message.getMessageElement()出错,它并没有取得 值,而是把整个XML文档内容取得了。