WebService接口及案例


什么是WebService

WebService是一種跨編程語言和跨操作系統平台的遠程調用技術。是通過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,並通過UDDI進行注冊。

  • SOAP (簡易對象訪問協議);
  • UDDI (通用描述、發現及整合);
  • WSDL (Web services 描述語言)。

比如現在需要使用第三方公司的短信服務,使用WebService來調用它的服務,只需要第三方公司提供一個接口調用文檔和WebService地址,就能根據文檔地址編程去調用它開放的短信服務,發送短信。

基礎的 Web Services平台是 XML + HTTP。HTTP 協議是最常用的因特網協議。XML 提供了一種可用於不同的平台和編程語言之間的語言。

建立服務端

首先創建新的工程。

再創建一個新的模塊即一個簡單的java項目。

然后創建三個包,分布是寫接口、接口實現類、入口類的代碼(手動刪除系統自動生成的example代碼)。

代碼如下:

package com.asu.service; 
import javax.jws.WebService; 
@WebService 
public interface IHello {
       public String sayHello(String name); 
}
package com.asu.impl; 
import com.asu.service.IHello; 
import javax.jws.WebService; 
@WebService 
public class HelloImpl implements IHello { 
      public String sayHello(String name) { 
           String strSay = "Hello"+name; return strSay; 
      } 
}
package com.asu.main; 
import com.asu.impl.HelloImpl; 
import javax.xml.ws.Endpoint; 
public class WebService { 
      public static void main(String[] args) { 
            String address = "http://127.0.0.1:9001/Service/ServiceTest"; 
            Endpoint.publish(address, new HelloImpl()); 
            System.out.println("service success"); 
      } 
}

右鍵運行WebService.java的main主方法(之后一直保持運行狀態,不要關閉)。

在瀏覽器的地址欄中輸入WebService入口類文件中定義的address地址(http://127.0.0.1:9001/Service/ServiceTest?wsdl),注意,要在地址后面加上 “?wsdl”。那么如果出現了下圖類似的界面,那么就說明WebService發布成功。

建立客戶端

接下來,我們就要實現在本地調用這個遠程接口。

在本地再新建一個普通的 Java Project 項目。

在彈出的選項框中的填寫上一步在瀏覽器地址欄中填寫的URL。

點擊完成,系統會自動為我們創建一些必要的類(手動刪除系統自動生成的example代碼)。

紅框圈起來的是系統創建的類,我們需要自己在創建一個類(WebServiceClientTest.java)來實現這些調用這些新創建的類,以到達調用接口的目的。

代碼如下:

package com; 
public class WebServiceClientTest {     
      public static void main(String[] args) throws Exception {         
            HelloImpl test = new HelloImplServiceLocator().getHelloImplPort();         
            String message = test.sayHello("調用者");         
            System.out.println(message);     
      }
 }

結果

運行結果如下:

log4j報錯解決辦法(百度):在配置文件log4j.properties(文件名必須這個,放在resources目錄) 全選粘貼如下代碼:

# Global logging configuration 開發時候建議使用 debuglog4j.rootLogger=DEBUG, stdout# Console 

output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM