最近一个需求需要调用外部的 webservice 系统,系统内部之前有过 webservice 调用的 demo,用的是 axis 的调用方式,但是是适用于,请求对象和接受对象均为简单类型(如 String 的场景)。
目前新需求提供的接口是 请求对象和返回对象都为 JavaBean 的格式,采用 axis 调用方式需要序列化,通过 axis 的一个方法注册,但是似乎需要服务端那边做配置?
带有复杂类型参数的 没学过 webservice,客户端用什么方式调。没学过 webservice 相关的知识,需求比较紧急,帮帮孩子。
1
kop1989 2020-10-16 15:38:35 +08:00
我给 lz 翻译翻译:
lz 之前用的是一个 JAVA 生态下的名叫 axis 的 webService 框架,这个框架在 06 年停止的维护。 之前只用来传单一的类型数据。比如 int 、long 、String (这个其实也算是对象,但就不发散了) 现在需要传一个包含多个字段的业务对象。不知道该如何传递。 我的解答: 最简单的方式是原接口传递 string 不变,将 object 序列化为 JSON 字符串,接收方把 JSON 字符串反序列化为对象。(前提是双方都要有此对象类声明。) |
2
Jrue0011 2020-10-16 16:44:58 +08:00
webservice 我也不太了解,你想问的可能是怎么把 java bean 序列化成 soap 格式的 xml 报文,以及怎么从这种 xml 报文中反序列化获得 java bean ?
|
5
Asuka0947 2020-10-16 16:50:05 +08:00
gson string to Object.class 我是这么做的
|
6
mamumu 2020-10-16 16:52:08 +08:00
直接用 idea(需要安装个插件 soapui)或者 eclipse 里边有工具直接根据 wsdl 生成客户端代码,如果参数是对象的话会自动生成的
|
7
Renco OP 明白了,java11 好像没有 webServcie 相关的包,生成的代码注释会报错。。换成 JDK8 就可以
|
8
wc951 2020-10-16 23:39:58 +08:00
不管是 axis1 还是 2 都可以生成 javabean 的,实在不会用 cxf 也行,只要有 wsdl 就能生成调用客户端
|