如何才可以修改wsdl檔案的内容?
使用WebService的注解。WebService的注解都位于
javax.jws
包
1:通過WebService的注解,可以更加形像的描述Web服務。進而生成WSDL文檔。
2:當修改了WebService注解之後,同時會影響用戶端生成的代碼。
3:調用的方法名和參數名也發生了變化。
4:服務類加上注解以後再次通過wsimport生成源代碼然後調用。
1.@WebService注解
作用:定義服務,在public class上邊
- name屬性:接口名稱
- portName屬性:端口名稱
- serviceName屬性:定義伺服器端的類
- targetNamespace屬性:目标封包件
2.@WebMethod注解
作用:定義方法,在公開方法上邊 哪一個方法要作為服務釋出
- @WebMethod對所有非靜态的公共方法對外暴露為服務.
- 對于靜态方法或非public方法是不可以使用@WebMethod注解的.
- 對public方法可以使用@WebMethod(exclude=true)定義為非對外暴露的服務。
3.@WebResult注解
作用:定義傳回值,在方法傳回值前邊
- 對方法的傳回值進行配置
4.WebParam注解
- 對方法的參數進行配置
5.JAX-WS注解開發WebServcie示例
- 服務端代碼
@WebService(name="myName",portName="myPortName",serviceName="myServiceName",targetNamespace="com.webservice")
public class WeatherServer01 {
@WebMethod(operationName="myMethod")
public @WebResult(name="myResult") String queryWeather(@WebParam(name="myParam") String cityName){
if("北京".equals(cityName)){
return "晴天白雲";
}else if("成都".equals(cityName)){
return "陰雨綿綿";
}else{
return "風平浪靜";
}
}
public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:8888/weather", new WeatherServer01());
System.out.println("天氣服務已經釋出.....");
}
}
- 生成的WSDL
- 用戶端調用代碼
public class MyClient {
public static void main(String[] args) {
MyName myName = new MyServiceName().getMyPortName();
String result = myName.myMethod("成都");
System.out.println("目前天氣:"+result);
}
}