java開發webservice介面
❶ java如何調用webservice介面
Java通過WSDL文件來調用webservice直接調用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用遠程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL裡面描述的介面名稱
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//介面的參數
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設置返回類型
String temp = "測試人員";
String result = (String)call.invoke(new Object[]{temp});
//給方法傳遞參數,並且調用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
❷ 如何用java來獲取webservice數據
Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。以下是使用Java代碼獲取WebService數據的一個實例:
1. 編寫代碼方式:
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException {
//標識Web Service的具體路徑
String endpoint = "WebService服務地址";
// 創建 Service實例
Service service = new Service();
// 通過Service實例創建Call的實例
Call call = (Call) service.createCall();
//將Web Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress(new java.net.URL(endpoint));//為Call設置服務的位置
// 由於需要認證,故需要設置調用的SOAP頭信息。
Name headerName = new PrefixedQName(new QName("發布的wsdl里的targetNamespace里的url", "string_itemName"));
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode("blablabla");
call.addHeader(header);
// 設置SOAPHeaderElement
Name soapHeaderName = new PrefixedQName(new QName("發布的wsdl里的targetNamespace里的url", "SoapHeader"));
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(soapHeaderName);
call.addHeader(soapHeaderElement);
// 執行調用並返回結果
Object result = call.invoke(new Object[]{});
return result.toString();
}
}
以上代碼示例展示了如何通過Java代碼調用WebService,包括設置服務地址、添加SOAP頭信息以及執行調用。需要注意的是,這里的代碼需要根據實際的WebService服務地址和認證信息進行調整。
另外,如果想要使用Eclipse自動生成的代碼進行調用,可以按照以下步驟操作:
1. 在Eclipse中打開項目,右鍵選擇「New」 -> 「Web Services」 -> 「Client」;
2. 指定Web Service的URL和WSDL文件路徑;
3. 生成客戶端代碼後,可以使用生成的Proxy類進行調用,示例如下:
UserManagerServiceProxy proxy = new UserManagerServiceProxy();
String result = proxy.someMethod();
以上就是使用Java獲取WebService數據的基本方法,希望對您有所幫助。
❸ wsdl轉為JavaWeb工程(WebService介面開發)
使用eclipse和axsi2插件將wsdl轉換為JavaWeb工程進行WebService介面開發的流程如下:
首先,需將axsi2-1.6.4的兩個Jar文件拷貝至plugins目錄,並重啟eclipse。
然後,打開eclipse,在首頁點擊window-Preferences,配置Axis2 runtime location為axsi2-1.6.4安裝包所在位置,點擊Ok。
接下來,新建WebProject項目,填寫Project name為所需項目名稱(注意:Dynamic web mole version 選2.5),點擊完成。
點擊web項目名稱,右鍵選擇new-other-web Services,點擊Next,啟動server等待至Finish按鈕可點擊,表示工程已在eclipse下的tomcat下運行。
將eclipse中的tomcat停止,將web工程打成war包,發布到D:\apache-tomcat-7.0.59\webapps下,重啟tomcat。
按照以下地址訪問此工程:localhost:8080/wsdl2jav...http://localhost:8080/wsdl2javaManagementService。點擊Services,顯示以下Services介面,點擊[ManagementService],顯示以下WSDL文件,則表示發布成功。