intellij 開發webservice

      最近項目中有用到WebService,因而就研究了一下,可是關於intellij 開發 WebService 的文章極少,要不就是多年之前,因而研究一下,寫這篇博文。純屬記錄,分享,中間有不對的地方,望請指正,下面開始。java

      首先,開發WebService的服務器端,不須要藉助任何的其餘,JDK就能夠搞定,只要在類上標註了@WebService,以及在方法上,標註了@WebMethod方法,就能夠認爲他是一個WebService。服務器

      下面,先顯示一下個人目錄結構:網絡

      

 

       在server包下的是服務器端代碼,在client包下的是客戶端代碼。ide

       下面看一下,服務端代碼:url

       HelloWorldWS.javaspa

     

1 package server;
2 
3 /**
4  * Created by Lin_Yang on 2014/12/16.
5  */
6 public interface HelloWorldWS {
7     public String sayHello(String name);
8 }

      這是一個接口。(固然也能夠沒有這個接口,效果是同樣的).net

      HelloWorldImpl.java3d

    

package server;

import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 * Created by Lin_Yang on 2014/12/16.
 */
@WebService
public class HelloWorldImpl implements  HelloWorldWS {
    @WebMethod
    @Override
    public String sayHello(String name) {
        String str="歡迎你:"+name;
        System.out.println(str);
        return str;
    }
}

 

 注意上面的兩個註釋@WebService 和  @WebMethodcode

   下面就能夠發佈這個WebService了server

   Publish.java

   

package server;

import javax.xml.ws.Endpoint;

/**
 * Created by Lin_Yang on 2014/12/16.
 */
public class Publish {
    public static void main(String args[]){
        Object implementor = new HelloWorldImpl();
        String address = "http://localhost:8989/HelloWorld";     //發佈到的地址
        Endpoint.publish(address, implementor);
        System.out.println("發佈成功");
    }
}

  

  客戶端的代碼很簡單,這裏就不連篇累牘了。

 

  下面着重說一下客戶端代碼的建立過程。

 

  intellij14 中內置了WebService 的客戶端代碼的實現方式,他是使用的 JAX-WS.廢話很少說,上圖。

  

  

 

在Intellj 的 Tool-->WebServices-->Generate Java Code From WSDL  (一看就是根據WSDL文檔生成java代碼了)

隨後應該彈出這個一個提示框。

首先,Web service wsdl url 是指明WSDL文檔的位置,這裏的地址和服務端發佈的地址相對應。他也能夠不從網絡中尋找這個WSDL文檔,也能夠從本地尋找。

格式是這樣的:file:/c:/CRMLOYMemberCreateWorkflow.wsdl 指定文檔的地址。

按照上圖的配置,就會在client包中生成這些代碼


下面咱們就能夠根據這些生成的代碼,訪問服務端的WebService了

test/client.java

package client.test;

import client.HelloWorldImpl;
import client.HelloWorldImplService;

/**
 * Created by Lin_Yang on 2014/12/16.
 */
public class Client {
    public static void main(String args[]){
        HelloWorldImplService helloWorldImplService=new HelloWorldImplService();
        HelloWorldImpl helloWorld= helloWorldImplService.getHelloWorldImplPort();
        String returnStr=  helloWorld.sayHello("先知後覺");
        System.out.println(returnStr);
    }

}

 

  服務端顯示

 

 

 客戶端顯示:



但願能夠給你們一些啓示。




下載demo

相關文章
相關標籤/搜索