1、作用:應用程序之間的交流的橋梁
2、簡單實例一:(純Java代碼實現)
2.1、新建一個java項目(我用的的Eclipse的進一步封裝版EOS,此列與開發工具無關)
2.2、創建如下目錄及Java類和接口
其中sayHello.java為接口,代碼如下:
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
//注意加注釋
@WebService
public interface sayHello {
@WebMethod
public void say();
@WebMethod
public void set(@WebParam(name = "arg") String arg);
}
sayHelloImpl.java為sayHello接口實現類,代碼如下:
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class sayHelloImpl implements sayHello {
public String yuju = new String();
@Override
@WebMethod
public void say() {
System.out.println("我想說:"+yuju);
}
@Override
@WebMethod
public void set(String arg) {
yuju = arg;
}
}
server.java為服務類,用于啟動服務,代碼如下:
import javax.xml.ws.Endpoint;
public class server {
public static void main(String[] args) {
server server = new server();
sayHelloImpl s = new sayHelloImpl();
Endpoint.publish("http://127.0.0.1:8080/say", s);
}
}
client.java為客戶端類,用于處理wsdl接口的(處理別人提供的接口),這個地方不便于演示(此處我用被注釋的java代碼測試),因為一個服務器啟動服務之后就不能另行運行這個類連接了,如果要測試,需用兩臺服務器,代碼粘貼進來如下:
import javax.sound.midi.Receiver;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class client {
public static void main(String[] args) {
/*String yuju = new String();
sayHello s = new sayHelloImpl();
yuju = "我愛你";
s.set(yuju);
s.say();*/
client c =new client();
JaxWsProxyFactoryBean j =new JaxWsProxyFactoryBean();
j.setServiceClass(Receiver.class);
j.setAddress("Http://127.0.0.1:8080/say");
sayHello r =(sayHello)j.create();
r.set("我愛你!");
r.say();
}
}
注意:如果運用客戶端程序處理別人的接口需要引入一個jar包:cxf-2.7.11.jar,此jar包不能與服務放在一起,不然會有干擾報錯
2.3、測試
2.3.1、運行服務程序
該接口綁定地址及端口為:http://127.0.0.1:8080/say,我們可以在瀏覽器上訪問:http://127.0.0.1:8080/say?wsdl測試一下
2.3.2、瀏覽器測試
這表明接口發布正常
2.3.3、java代碼測試
public static void main(String[] args) {
String yuju = new String();
sayHello s = new sayHelloImpl();
yuju = "我愛你";
s.set(yuju);
s.say();
}
運行代碼可得到如下結果:
此圖說明整個接口代碼沒有問題
2.4、總結:
到此一個最簡單的webservice接口已經開發好了,其它復雜的接口都是基于這個框架開發出來的,復雜的接口無非就是加一些數據庫訪問,復雜的邏輯處理,日志處理、文件處理、緩存處理等,但這些東西要用代碼實現對java功底不是很深厚的程序員來說是比較困難的,但不要緊,普元公司出的一個中間件EOS對于開發接口是非常簡單的,下面我就來演示一下EOS如何簡單快速開發接口。
2.5、擴展:
上面演示了一個簡單的接口發布,但這個發布是基于java類運行的,如果想開發獨立服務的接口,就需要把代碼放入服務器(我們用tomcat演示),但以上代碼放在服務器里,啟動服務器是沒有效果的,需要做如下操作:
2.5.1、新建一個動態web項目:
2.5.2、把之前寫的代碼放入 java Resources/src/[自定義包名]里
2.5.3、在包中新建一個publish類(監聽器),類的代碼如下:
package com;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.xml.ws.Endpoint;
/**
* Servlet implementation class publish
*/
@WebServlet(value = "",loadOnStartup = 0)
public class publish extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public publish() {
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init() throws ServletException {
// TODO Auto-generated method stub
server server = new server();
sayHelloImpl s = new sayHelloImpl();
String address = "http://127.0.0.1:8080/say";
Endpoint.publish(address, s);
System.out.println("服務啟動成功");
}
}
2.5.4、把項目打包(war包),放入tomcat服務器中,啟動服務器,即可部署。
2.5.5、webserver的開發不在細講,想要繼續深入了解,請自行找相關教程看,看到這,一個基本的接口開發過程應該是已經清楚了。
3、EOS開發接口
未完,待續。。。。。。