WebService 簡單入門教程(Java Web專案)
基本需求:
1、JDK版本為: jdk1.6以上;
2、建立兩個專案(java專案 或 web專案 都可以):服務端(Web_Server)和客戶端(Web_Client);
3、因tomcat沒有jax-ws所需的依賴環境,所以首先下載Jax-ws RI,即jax-ws reference implemantation, 地址:http://jax-ws.java.net。
專案目的:
客戶端(Web_Client)中的程式呼叫 服務端(Web_Server)中的方法;
步驟:(以Java Web專案為例)
1、建立一個專案名為 Web_Server 的Java Web專案,建立包名為 com.demo.server 的包,在該包下建立 介面 名為 ServerFunction 的介面 和 類 名為 ServerFunctionImpl 的實現類;
程式碼如下:
-------------------------------------------------------------------------------------------------------------------------------
介面程式碼:
-------------------------------------------------------------------------------------------------------------------------------
package com.demo.server;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style = Style.RPC)
public interface ServerFunction {
/*
* 介面方法用於將傳入的字串轉為大寫
*/
@WebMethod
public String changeWords(@WebParam(name = "words") String words);
}
-------------------------------------------------------------------------------------------------------------------------------
實現類程式碼:
--------------------------------------------------------------------------------------------------------------------------------
package com.demo.server;
import javax.jws.WebService;
@WebService(endpointInterface = "com.demo.server.ServerFunction")
public class ServerFunctionImpl implements ServerFunction {
/*
* 方法用於將傳入的字串轉為大寫
*/
@Override
public String changeWords(String words) {
String str = words;
str = str.toUpperCase();
return str;
}
}
---------------------------------------------------------------------------------------------------------------------------------
2、在 WEB-INF 目錄下,建立兩個xml檔案:sun-jaxws.xml 和 web.xml
程式碼如下:
---------------------------------------------------------------------------------------------------------------------------------
sun-jaxws.xml 程式碼
---------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint
name='ServerFunction'
implementation='com.demo.server.ServerFunctionImpl'
url-pattern='/jdkService'/>
<!--
name='ServerFunction' web service服務的介面名稱
implementation='com.demo.server.ServerFunctionImpl' web service服務的介面的實現類全路徑
url-pattern='/jdkService' url的相對路徑
-->
</endpoints>
-----------------------------------------------------------------------------------------------------------------------------------
web.xml 程式碼
------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID"
version="3.1">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>ServerFunction</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServerFunction</servlet-name>
<url-pattern>/jdkService</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
---------------------------------------------------------------------------------------------------------------------------------------
3、將下載的 jaxws-ri-2.2.10.zip 壓縮包中 lib 資料夾下的 jar包 複製到 Web_Server 專案的 WEB-INF/lib 下,Build Path 到專案裡;
4、啟動tomcat,在瀏覽器位址列輸入 http://localhost:8080/Web_Server/jdkService?wsdl 就可以看到該service的詳細資訊(如果不成功的話,請檢查伺服器埠是否被佔用);
5、建立一個專案名為 Web_Client 的 Java Web 專案;
開啟 cmd 輸入:
命令: wsimport -s src的路徑 -p 完整包名 -keep webservice的釋出地址 ;然後回車就OK了,
例如: wsimport -s D:\workspace\Web_Client\src -p com.demo.client -keep http://localhost:8080/Web_Server/jdkService?wsdl
(如果wsimport命令失效,請檢查是否把jdk配入環境變數;JAVA_HOME:JDK所在位置;CLASSPATH:%JAVA_HOME%\lib\tools.jar)
回車後,會出現:
正在解析 WSDL...
正在生成程式碼...
正在編譯程式碼...
出現以上內容時,恭喜你,成功了!
你可以重新整理一下你的 Web_Client 專案,會在 com.demo.client 包下會有對應的WebService生成的檔案!
6、在 com.demo.client 該包下建立測試類Test
程式碼如下:
----------------------------------------------------------------------------------------------------------------------------------
package com.demo.service;
public class Test {
public static void main(String[] args) {
ServerFunction serverFunction = new ServerFunctionImplService().getServerFunctionImplPort();
String str = serverFunction.changeWords("hello world");
//在控制檯列印的就是在 Web_Server 專案下的 changeWords 方法處理後的字串
System.out.println(str);
}
}
-----------------------------------------------------------------------------------------------------------------------------------
7、執行該測試類Test,會在控制檯上列印出大寫的 “HELLO WORLD”,說明測試成功!
相關文章
- 【C#入門超簡單】簡單的專案實踐C#
- 簡單的 Go 入門教程Go
- [2]SpinalHDL教程——Scala簡單入門
- 34套Java專案教程+原始碼包含Java swing專案 Java web專案 Java控制檯專案(視訊教程+原始碼)Java原始碼Web
- Jenkins在Java web專案CI/CD中的簡單應用JenkinsJavaWeb
- xmake入門,構建專案原來可以如此簡單
- ASP入門教程 1小時ASP入門,非常簡單
- 簡單的 Shell 指令碼入門教程指令碼
- Spring Boot入門-快速搭建web專案Spring BootWeb
- Go Web開發(Gin框架)簡易入門教程GoWeb框架
- IDEA新建Maven Java Web專案-詳細教程IdeaMavenJavaWeb
- WebService就是這麼簡單Web
- scrapy入門教程()部署爬蟲專案爬蟲
- `.NET Web`新人入門必學專案`EarthChat`Web
- JSON Web Token 入門教程JSONWeb
- .NET CLI簡單教程和專案結構
- 《MySQL 入門教程》第 07 篇 簡單查詢MySql
- web專案技術必備-------jQuery快速入門WebjQuery
- IntelliJ IDEA配置與搭建web專案入門使用IntelliJIdeaWeb
- mvn 建立java專案 web專案JavaWeb
- 大神實戰Web前端最新版培訓視訊教程 專案實戰+基礎入門 Web前端課程 專案篇Web前端
- Web Components 入門例項教程Web
- Java:Web Service初入門JavaWeb
- SpringSecurity簡單入門SpringGse
- git簡單入門Git
- SprintBoot簡單入門boot
- 簡單入門Kubernetes
- Mysql 簡單入門MySql
- Vue簡單入門Vue
- Azkaban 簡單入門
- postgresql 簡單入門SQL
- Kafka簡單入門Kafka
- FLAG-學完JAVA教程:Java入門基礎影片教程,java零基礎自學就選黑馬程式設計師Java入門教程(含Java專案和Java真題)Java程式設計師
- Webpack4 入門到帶你打包一個簡單單頁應用專案Web
- Flink 實踐教程-入門(8): 簡單 ETL 作業
- Angularjs 從入門到實戰(含專案教程)AngularJS
- Java爬蟲入門(一)——專案介紹Java爬蟲
- 如何在Linux安裝Python+JDK+Mysql+Tomcat+Django以及簡單的跑一個java web專案和一個簡單的Django專案LinuxPythonJDKMySqlTomcatDjangoJavaWeb
- SpringBoot與WebService的簡單實現Spring BootWeb