在使用cxf或者x-fire进行webservice开发时,从wsdl文件生成客户端代码时,如果有属性的类型是String,可能会出现JAXBElement<String>类型。
为什么webservice客户端不直接使用String,而使用JAXBElement<String>类型,自然是有原因的,是因为服务器端的wsdl文件有nillable="true"这个属性。
此时有两种方法对这个JAXBElement<String>类型赋值。
1.
User user = new User();
JAXBElement<String> name = new JAXBElement<String>(new QName("http://memberService", "username"), String.class, "smallnest");
user.setUsername(name);
使用这种方法时,有很多人发现客户端的数据确实存入了,可是到了服务器端,通过.getUsername().getValue()调用时,却是null,原因就是Qname值不对!注意,在生成的客户端代码里有private static final QName SERVICE_NAME = new QName("xxx","xx");
并不是这个QName,真正的Qname要去ObjectFactory.java文件去找。只要QName写对,这种调用方法是可以的。
2.当然,还有一种更简单的方法,直接使用ObjectFactory这个类来调用:
User user = new User();
ObjectFactory objFac=new ObjectFactory();
JAXBElement<String> name = objFac.createUserUsername("smallnest");
user.setUsername(name);
这样就简便多了。
分享到:
相关推荐
cxf生成客户端 服务端代码
cxf生成webservice客户端代码
spring,cxf,restful发布webservice传递复杂对象,例如List,Map,List<Map>
<groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.1.7</version> </dependency> <!-- CXF webservice --> <dependency> <groupId>org.spring...
使用cxf wsdl2java生成webservice客户端命令
webservice客户端,框架为CXF,生成客户端的方式为自动(myeclipse生成)
<groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>generate-sources</id> <phase>g
cxf生成webservice客户端
cxf java代码生成 wsdl文件 ,wsdl文件生成 java代码,相关博文: http://blog.csdn.net/dream_broken/article/details/35331949
使用cxf生成onvif协议的客户端。使用onvif协议提供的wsdl文件生成客户端。
cxf 生成java代码的执行命令
CXF实例源代码 客户端调用 web service 入门教程
CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...
使用idea创建maven项目组建spring+cxf 客户端使用idea创建java Enterprise 中的WebServices Client进行创建
cxf框架的webservice,可以完美运行,生成了xml字符串并进行传递以及生成了json对象,客户端进行请求并解析数据
cxf自动生成webservice客户端,apache-cxf-2.7.18最稳定的版本 apache cxf 框架wsdl2java命令的使用。 -encoding是指定编码类型; -p 指定包名 -d 指定生成目录 -all生成服务端和客户端代码 -...
CXF客户端生成器,可以直接进入bin目下,运行wsdl2java
cxf客户端调用axis服务端流程
cxf 开发webservice客户端 代码经过测试