天天看點

通過Main方法(Endpoint)釋出webService伺服器

如果還不知道怎麼将wsdl檔案轉為服務端代碼,那麼請自行百度,或者去看我的另一篇博文。

如果你知道,那麼就好辦了。

所謂通過main方法來釋出webService服務端,就是通過Endpoint類來釋出:

将生成的服務端代碼放入工程,建立一個Main方法,鍵入如下代碼:

import java.util.concurrent.Executors;

import javax.xml.ws.Endpoint;

import com.lansoft.ws.service.impl.CollectAdapterServicePortImpl;

public class ServiceMain {

public static void main(String[] args) {

//CollectAdapterServicePortImpl是生成java代碼ICollectAdapterService接口的實作類

Endpoint endpoint = Endpoint.create(new CollectAdapterServicePortImpl());

endpoint.setExecutor(Executors.newScheduledThreadPool(100));

//ICollectAdapterService是生成的接口

endpoint.publish("http://192.168.254.231:8080/ICollectAdapterService");

}

}

項目結構如圖:

通過Main方法(Endpoint)釋出webService伺服器

當然,上面的接口和實作類可以改為生成代碼的其他的接口和實作類,但是接口必須和實作類對應。

右鍵run as main方法,在浏覽器輸入框輸入:http://192.168.254.231:8080/ICollectAdapterService?wsdl

出現相關代碼則表示啟動成功

通過Main方法(Endpoint)釋出webService伺服器

因為我的工程是maven工程,是以在這裡曬出來我引入的和cxf相關的包:

<dependency>

<groupid>org.apache.cxf</groupid>

<artifactid>cxf</artifactid>

<version>3.0.7</version>

<type>pom</type>

</dependency>

<dependency>

<groupid>org.apache.cxf</groupid>

<artifactid>cxf-rt-frontend-jaxws</artifactid>

<version>3.0.7</version>

</dependency>

<dependency>

<groupid>org.apache.cxf</groupid>

<artifactid>cxf-rt-transports-http</artifactid>

<version>3.0.7</version>

</dependency>

<!--缺少jetty可能是報錯:Cannot find any registered HttpDestinationFactory from the Bus -->

<!-- 如果是tomcat則沒問題-->

<dependency>

<groupid>org.apache.cxf</groupid>

<artifactid>cxf-rt-transports-http-jetty</artifactid>

<version>3.0.7</version>

</dependency>

注意:

怎麼說呢,如果不是maven項目的話,隻是普通的web項目,那麼加入相關代碼,寫好釋出服務端main方法的話,直接run as 就可以了。因為我的Eclipse配置的是tomcat,是以預設是通過tomcat将服務端給發不出去了,值得注意的是,我的整個web項目并沒有放在tomcat的伺服器上。

如果是maven工程(像我上面的那樣),因為我在pom檔案中設定了使用jetty啟動工程,雖然沒有通過maven指令jetty:run來啟動整個項目,但是通過main方法直接釋出服務端後,還是通過jetty來講服務端發不出去了,這個時候就需要上述pom檔案中提到的那個jar包了。

如果有不懂,或是不了解的同學,可以私信我,或者是下方留言,我看到後會及時回複的。

雖然,,,我也是一個小白。

繼續閱讀