糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > java webservice解密 调用WebService获得基于SOAP的XML 怎么解析获得节点的属性和值...

java webservice解密 调用WebService获得基于SOAP的XML 怎么解析获得节点的属性和值...

时间:2018-08-22 22:30:29

相关推荐

java webservice解密 调用WebService获得基于SOAP的XML 怎么解析获得节点的属性和值...

本人现在本人在做一个小的项目测试,然后现在客户端已经可以获得服务器传过来的XML的字符串消息。方法什么的都是本人写的。现在是要获得节点里面的属性名和属性值,原因是要在一个APP中显示出来,本人这个只是测试的一个JAVA程序。到时是要写到Android里面的。所以是要获取这些值。但是今天试了两个方法都报错。这边是其中一种方法,报的错都一样,所以应该不是方法问题。

ByteArrayInputStreaminputStream=newByteArrayInputStream(r.getBytes());

DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();

DocumentBuilderdb=factory.newDocumentBuilder();

org.w3c.dom.Documentdocument=db.parse(inputStream);

NodeListnode=document.getElementsByTagName(“row”);

for(inti=0;i

org.jdom2.Elementelement=(Element)node.item(i);

Stringcontent=element.getAttributeValue(“address”);

System.out.println(content);

}

用的是这个方法。然后还有一种SAXReader的方法也试用过。都是同样的报错:

Exceptioninthread“main”org.dom4j.DocumentException:Erroronline21ofdocument:元素类型“row”必须后跟属性规范“>”或“/>”。Nestedexception:元素类型“row”必须后跟属性规范“>”或“/>”。

错误信息有用的就这一行。然后本人的那个字符串,就是XML类型的字符串是以下内容:

address=”外环路”

canappoint=”1″

deptcode=”1″

deptdoctors=”李一”

outpatientofficename=”外科”

parentId=”0″

remark=”测试”

/>

address=”外环路”

canappoint=”1″

deptcode=”2″

deptdoctors=”王大陆”

outpatientofficename=”骨科”

parentId=”0″

remark=”测试”

/>

错误信息里面说21行的row有错误,也就是这一块块的开始错误。帮看看吧。卡了挺久的了。这些就取了几个元素。

解决方案

100

回答你的第二个问题吧,第一个格式太乱,内容多,不想看。

利用Axis2发布webservice服务不一定非要是xml格式,主要看你服务端定义的是什么,客户端根据你的定义来封装请求参数,然后得到你指定的返回结果,本人给你个简化的案例,我们项目中就是这么做的:

首先:发布流程啥的你应该知道的,本人就直接说几个暴露在指定类的方法

服务端:

publicLoginResultuserLogin(StringIp,intPort,StringuserName,StringuserPwd){

returnxxxService.userLogin(Ip,Port,userName,userPwd);

}

我们看这个方法,这个当时是做webservice登录系统的,入参是几个String类型的数据,返回的是一个叫LoginResult的类,这里我们叫它“结构体”,这个里面就是我们常见的返回结果的定义,来简单看下

publicclassLoginResult{

//登录结果

privatebooleanresult;

//错误号

privateinterrorCode;

//用户登录票据

privateStringtgt;

//setter、getter

那么我们在服务端定义好了,入参是String数组,返回的是一个结构体。

那么我们知道:webservice服务的好处就是可以跨平台,本人不管谁来调用,只要给本人指定的参数,本人就给你返回结果。那么本人举个用Java来调用的吧,看下本人这个博客,本人写了怎么用axis2+MyEclipse来生成客户端:/u013185616/article/details/51822170

我们就可以通过生成的客户端代码去调用指定的方法。

当然,xml的形式是主流,原因是这样的结构体可能会限制一些语言或平台,根据需要吧,原因是我们暴露的这个服务是给本人的子系统用的,都是Java,也就不分那么多了。

如果觉得《java webservice解密 调用WebService获得基于SOAP的XML 怎么解析获得节点的属性和值...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。