在今天以前我还没有用过代码解析过SOAP报文,更别提转成JAVA对象了,今天的任务中报文这个模样的,(为防止数据信息,以下数据我故意打乱了防止泄露什么信息.)
上面是使用POSTMAN美化之后的报文样子,最开始的报文模样是这样的
一.美化报文
美化报文不是为了别人,是为了自己看起来方便一点点,有助于了解对象结构。 美化工具可能很多,手边的工具可能就POSTMAN,就以这个为例了,相信人手都会装有一个。
在POSTMAN中随意打开一个,Body里面贴上原始报文,然后调成XML, 点击Beauty即可美化报文.
wsdl文件
由于组长发给我的文档里面没有这个SOAP的地址,只有一份接口参数说明以及wsdl文件,接口地址暂时还没给我,所以我们利用wsdl文件生成java实体类,soap的url也是一样的效果.
以下是操作步骤,将wsdl文件放到工程的某个文件目录下,右击 WebService—>Generate Java Code from wsdl (这里指定wsdl路径应该是一样的效果)—> 选定 Axis2 和 JaxB,以及生成的目录即可,但是每次生成位置稍有不对,手动移下就行了,这样就生成了Java对象.
四.采坑的点
按照别人写的直接获取SoapBody在使用extractContentAsDocument方法,就能够解析成功,而到了我这里解析下来java实体类中所有属性都是空的,于是我就想到的上面的方式,这样加入SoapBody中存在多个属性,比如和CallWSSOP同级的java类,也能够解析出来.
另外我尝试了好久去利用@XmlNs发现,这个注解好像根本不起作用,这里面待研究的好多,但是以后碰到像我遇到这么复杂的报文,解析方式按照上面来就可以啦.