首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

java wsdl 中不显示参数属性类型的有关问题解决方案

2014-01-12 
java wsdl 中不显示参数属性类型的问题解决方案最近采用CXF写了webservice接口,但是生成的wsdl却没有参数。

java wsdl 中不显示参数属性类型的问题解决方案
最近采用CXF写了webservice接口,但是生成的wsdl却没有参数。

首先介绍一下JWS的注解:
Java Web Service (JWS) 注释类型是 Web Service 的核心之一。

(一)类级别

@javax.jws.WebService(targetNamespace = "", name = "",serviceName = "")

targetNamespace :生成的 WSDL 中使用的名称空间
name:Web Service 的名称,映射到 WSDL 文件中的 <wsdl:portType> 元素
serviceName: Web Service 的服务名,映射到 WSDL 文件<wsdl:service>   元素。


@javax.jws.soap.SOAPBinding(parameterStyle = javax.jws.soap.SOAPBinding.ParameterStyle.BARE)

用于指定 Web Service 到 SOAP 消息协议的映射。

parameterStyle :确定方法参数是否表示整个消息正文,或者参数是否是包装在以操作命名的顶层元素中的元素。默认值:javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED

(二)方法级别

@javax.jws.WebResult(name = "", targetNamespace = "", partName = "")

name:指定生成的 WSDL 中的操作结果的名称, 默认名称“return”。

@javax.jws.WebMethod(operationName="")

operationName: 指定方法公开的公共操作名,映射到 WSDL 文件中的 <wsdl:operation> 元素。没有这个属性的话,操作的公共名称将与方法名相同。

@javax.jws.WebParam(name="",targetNamespace="")

name: 指定输入参数名,而不是该参数的Java 名称“input”。

注释描述部分转载至:http://suky.iteye.com/blog/692279

========================================

那么为什么参数类型不在wsdl上显示呢?

原因就在targetNamespace上。
增加webservice interface和webservice impl的@webservice注解的targetNamespace属性。
同时接口方法参数前@WebParam注解。
接口代码,实现类就不展示了




 

热点排行