創建服務端
一、file–>new–>project
二、點擊next后輸入服務端名,點擊finish,生成目錄如下
三、在 HelloWorld.Java 文件中右擊,選 WebServices ,再選 Generate Wsdl From Java Code ,確定
點擊ok會自動給我們生成HelloWorld.wsdl,畫紅線處注意
四、配置tomcat,此處不多說,主要是配置好tomcat后還需要加入 Axis 的庫
點擊右下角fix即可,重新啟動 tomcat ,在瀏覽器中輸入:http://localhost:8080/services ,出現如下信息,代表部署成功。
點擊HelloWorld (wsdl)可看到相應的信息
至此,服務器端的Web Service就創建好了,下面我將繼續講解如何創建客戶端的Web Service!
創建客戶端:
一、file–>new–>project
輸入客戶端項目名,finish即可,項目創建成功會自動跳出如下界面,手動可以右鍵項目–>webService–>Generate Java Code From Wsdl 即可
然后點擊你的項目名稱郵件 選擇如下
導入之前創建的服務端的wsdl文件即可
點擊ok,idea會幫我們生成好相對應的代碼,測試類如下:
package example; import com.HelloWorldServiceLocator; import com.sun.corba.se.spi.activation.Activator; public class HelloWorldClient { public static void main(String[] argv) { try { HelloWorldServiceLocator locator = new HelloWorldServiceLocator(); Activator service = locator.get(); // If authorization is required //((HelloWorldSoapBindingStub)service).setUsername("user3"); //((HelloWorldSoapBindingStub)service).setPassword("pass3"); // invoke business method service.businessMethod(); } catch (javax.xml.rpc.ServiceException ex) { ex.printStackTrace(); } catch (java.rmi.RemoteException ex) { ex.printStackTrace(); } } }
此時會有報錯,HelloWorldServiceLocator類是由於沒有導包按alt+enter導包即可,下面在進行一些代碼修改
Activator service = locator.get(); service.businessMethod();
改成
HelloWorld_PortType service = locator.getHelloWorld();
String str = service.sayHelloWorldFrom("sushan"); System.out.println(str);
此時運行客戶端main方法還會報錯,報錯的原因是沒有junit的jar包,我的做法是加入maven
此時運行客戶端main方法還會報錯,報錯的原因是沒有junit的jar包,我的做法是加入maven
具體步驟:
1.現在項目新建一個pom.xml(最好從已有的maven項目中粘貼過來)
2.關閉項目 刪除最近打開歷史 重新打開這個項目
3.顯示是否變味maven項目 點擊 是
然后在pom中加入依賴
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
得到最后的結果為