webService-WSDL文件的修改

来源:互联网 发布:nba球员鞋垫有数据 编辑:程序博客网 时间:2024/05/17 15:39
l.
WSDL文件的内容,一般由服务默认生成,但为了更好的向开发人员提供使用说明书,一般应做一些简单的修改。至少不应该暴露我们的包结构。而targetNamespace默认情况下为倒置的包名,这已经暴露了我们的包结构。
l通过在类文件上添加以下注解,可以修改wsdl生成的各元素,而不是直接去修改wsdl文件直接去修改wsdl文件是无效的
WebService的注解包括:
@WebService-定义服务   --类上
@WebMethod-定义方法   - 方法
@WebResult-定义返回值– 返回值
@WebParam-定义参数– 参数 
package com.itcast;import java.text.SimpleDateFormat;import java.util.Date;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.WebParam.Mode;import javax.xml.ws.Endpoint;/** * 一个加了很多注解的代码 */@WebService(name="myName",//对应portType name="myName"portName="myPort",  //对应服务中的port name="myPort"serviceName="myService",//对应service name="myService"targetNamespace="http://leaf.com/mynamespace")//可以随意书写类似于java中的packagepublic class HelloWorld{private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@WebMethod(action="myAction",//定义一个soapAction="myAction"用于找到这个方法以执行   operationName="myOperationName")//定义可以调用的方法,会生成相应类的具体方法,operation name=".."public @WebResult(name="mySayHelloResult")String//定义返回值的名称sayHello(){return "HelloWorld";}@WebMethod(action="mySayHiAction",operationName="mySayHiOperationName")public @WebResult(name="mySayHiResult")String sayHi(@WebParam(name="myParaName",//将参数放到头信息中,用于保护参数,默认在body中                                                      header=true,  mode=Mode.IN)String name){String str = "你好:"+name+",当前时间是:"+sdf.format(new Date());return str;}public static void main(String[] args) {Endpoint.publish("http://127.0.0.1:6666/helloworld",new HelloWorld());}}



2.
通过WebService的注解,可以更加形像的描述Web服务。从而生成WSDL文档。
当修改了WebService注解之后,同时会影响客户端生成的代码。
调用的方法名和参数名也发生了变化。

即使是没有修改源代码,只修改了注解,客户端的代码也必须要重新生成(注意是生成而不是下载)。否则调用将会失败。
生成本地调用代码,依然使用wsimport工具
0 0
原创粉丝点击