天天看點

WebService專題(五)-JAX-WS注解開發WebServcie

如何才可以修改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);
  }
}      

繼續閱讀