eclipse發布
參考:http://www.cnblogs.com/cherxu/p/5179053.html
很簡單,接口寫好后,打個war包放到tomcat里面跑起來;
本例采用axis來測試;
發布好后,寫一個簡單的測試方法。
在eclipse里面新建一個動態web工程
寫一個測試類TestWS,代碼如下:
package com.enfo.testws;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestWS {
public static void main(String[] args) {
try{ //ip端口/ws項目名/services/接口方法所在類名,也可以在地址后面加上?wsdl
String endpoint = "http://127.0.0.1:8080/LoginService/services/LogonService";
Service service = new Service(); //新建一個axis的service對象
Call call = (Call)service.createCall();//通過service新建一個axis的call對象
call.setTargetEndpointAddress(endpoint);//設置call要訪問的地址
/**QName命名空間,http://ws.enfo.com,打開http://127.0.0.1:8080/LoginService/services/LogonService?wsdl
*可以看到頁面上顯示成xml格式,里面有命名空間信息targetNamespace="http://ws.enfo.com"
*ws.enfo.com其實就是接口類所在的包名:src下的com.enfo.ws
*/
call.setOperationName(new QName("http://ws.enfo.com","hello"));//http://service.enfo.com是給接口地址隨便設置的一個命名,hello是要調用的ws接口方法名
call.addParameter(new QName("http://ws.enfo.com","name"), org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);//設置ws方法的參數對應的參數類型等信息
//call.addParameter(new QName("http://ws.enfo.com","password"), org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
call.setReturnClass(String.class);//設置ws方法返回的值的類型;注意:如果方法中返回的是int,這里也可以設置成String.class
//以上先創建call對象,再設置要訪問接口的地址,給要執行的方法設置命名,給方法設置參數類型,設置返回類型
String name="taptqqqqq"; //設置要傳到接口的參數
String ret =(String)call.invoke(new Object[] {name});//調用call的invoke方法訪問接口,將設好的參數傳過去,得到接口返回值
System.out.println("發送的是:"+name);
System.out.println("返回的是:"+ret);
}catch(Exception e){
System.err.println(e.toString());
}
}
}
測試方法相關jar包:axis.jar,commons-discovery-0.2.jar,commons-logging.jar,jaxrpc.jar,saaj.jar,webserviceutils.jar,
wsdl4j.jar,補充:activation-1.1.jar,mail.jar
下載地址:
https://pan.baidu.com/s/1nvLXMIX