進入File > New Project…菜單打開新建項目窗口,依次選擇Java、WebServices,Version項選擇Apache Axis,Libraries項選擇 Download。而後點擊Next按鈕進入下一頁。java
在下一頁中輸入項目名稱,而後點擊Finish按鈕開始下載依賴包。依賴包下載完成後進入新建的項目。web
src/example目錄下自動建立了一個 HelloWold 類:apache
package example;/**瀏覽器
* Created by Administrator on 2015/7/30.tomcat
*/服務器
public class HelloWorld {app
public String sayHelloWorldFrom(String from) {ide
String result = "Hello, world, from " + from;工具
System.out.println(result);spa
return result;
}
}
web/WEB-INF目錄下建立一個server-config.wsdd服務配置文件。
在HelloWorld.java文件上點擊右鍵,選WebServices > Generate Wsdl From Java Code 。
而後在出現的窗口裏點擊肯定按鈕。
在HelloWorld.java所在目錄會生成一個HelloWorld.wsdl文件。
啓動服務這裏稍微有點複雜,由於要配置 Tomcat 服務器。先喝口茶再繼續往下看。
選擇Run > Edit Configurations…菜單,打開Run/Debug Configurations窗口。
在Run/Debug Configurations窗口裏添加+按鈕,在出現的菜單裏選擇Tomcat Server > Local。若是看不到Tocmat Server菜單項,則點擊最下面的29 items more (irelevant)…菜單項查找。
而後在添加的Tomcat Server配置頁面中添加配置的Name、Application server和HTTP Port。若是Application server爲空,將本地的 Tomcat 安裝地址添加進來。若是本地沒有,從網上下載 Tomcat 7:
https://tomcat.apache.org/download-70.cgi
這時配置頁面底部可能會顯示有Warning:No Artifacts marked for deployment(警告:沒有標記要部署的產物)。
點擊警告信息右側的Fix…按鈕切換到Deployment標籤頁。
在Deployment標籤頁點擊Deploy at the server startup區的+按鈕,選擇Artifacts
添加 Artifact 後的界面以下,已經沒有警告了。點擊OK完成運行參數的配置。
到這個時候,而後能夠運行起服務了,可是訪問服務頁面時仍是會報錯。由於還要給部署的 Artifact 添加 Apache Axis 包的依賴。
選擇File> Project Structure…菜單。
在出現的窗口中選擇Project Settings > Artifacts,會到在新的警告信息。點擊警告信息右側的Fix…按鈕。
在彈出菜單裏選擇Add 'JAX-WS-Apache Axis' to the artifact。
修復完成後警告消失。
點擊工具欄上的運行或調試按鈕運行服務。
而後在瀏覽器裏輸入:
http://localhost:8080/services
訪問結果以下:
WSDL 文件能夠用來生成客戶端代碼,也能夠用來生成服務端代碼。客戶端代碼用於訪問遠程服務,服務端代碼用於提供遠程服務。在 IntelliJ IDEA 裏這兩個操做是相似的。這裏主要講述服務端代碼的生成。
一個 WSDL 文件對應一個 JAVA 類,好比前面的HelloWorld.wsdl文件對應HelloWorld.java。複雜的 WSDL 文件除了對應有一個主類外,還會有輔助類,好比主類方法中使用到的 Bean 等。
這裏假設要將主類生成到 services 包目錄下,那麼在src/services(沒有的本身建立一個)目錄上點擊右鍵,在出如今的菜單中選擇WebService > Genarete Java Code From Wsdl…:
在出現的窗口是選擇遠程 WSDL 的地址,或者選擇本地的 WSDL 文件,而後選擇Output mode(輸出模式)。這裏做者選擇成功server生成服務端代碼, 用於對外提供服務。固然也能夠選擇client生成客戶端代碼用於訪問遠程服務。
下面是電信 TSM WebService 的 WSDL 文件生成的代碼文件列表:
點擊OK按鈕後生成對應的文件。其中包含一個名爲deploy.wsdd的文件,將該文件中的service標籤複製到web/WEB-INF/service-config.wsdd文件的<deployment>標籤下,用於對外發布。
運行項目的結果以下:
若是手動寫的service-config.wsdd文件,可能不能訪問 WSDL 文件。這個時候能夠在server-config.wsdd文件的<deployment>標籤下手動添加<transport>標籤。內容以下:
<deployment
xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">;
<transport name="http">
<requestFlow>
<handler type="java:org.apache.axis.handlers.http.URLMapper"/>
</requestFlow>
</transport>
...
</deployment>