導航:首頁 > 編程語言 > javawebservice非同步調用

javawebservice非同步調用

發布時間:2023-09-14 12:01:38

㈠ .net中webservice是同步調用還是非同步調用

WebService
其實非同步調用WebService是不需要在WebService中做任何操作的,只是普通的WebService就可埋搏以了,下面是我寫的一個簡單的WebService返回SqlServer2000中NorthWind資料庫中所有員工的信息
[WebMethod]
public DLL.EmployeesDataTable getEmployee()
{
DLL.EmployeesDataTable result = new DLL.EmployeesDataTable();
DLLTableAdapters.EmployeesTableAdapter eta = new WebServiceAsyn.DLLTableAdapters.EmployeesTableAdapter();
eta.FillEmployee(result);
return result;
} 這里我需要聲明一下,返回的 DLL.EmployeesDataTable類型是我用DataSet生成的強類型,或者你可以認為他是DataTable。
如何在Asp.Net里引入WebService呢?首先右鍵單擊解決方案資源管理器中的項目,然後選擇添加Web引用(你也可以單擊網站菜單選擇添加Web引用),在彈出的對話框中填入WebService的地址,並填寫Web引用名後點擊添加引用按鈕就可以了,這時我們就可以在代碼視圖中根據web引用名彎侍祥來對WebService進行調用了,下面是我的CS代碼
//實體化WebService引用
private AsynWebService.Service1 asynSer;
//構造函數初始化WebService引用,並為非同步調用WebService設置好了結果處理函數【方法名Completed】(先這么叫吧,我也不知道怎麼叫)
public _Default()
{
asynSer = new AsynWebService.Service1();
asynSer.HelloWorldCompleted += new AsynWebService.(asynSer_HelloWorldCompleted);
asynSer.getEmployeeCompleted += new AsynWebService.(asynSer_getEmployeeCompleted);
}
protected void Button1_Click(object sender, EventArgs e)
{
//開始非同步調用HelloWorld;
asynSer.HelloWorldAsync();
}

protected void asynSer_HelloWorldCompleted(object sender, AsynWebService.HelloWorldCompletedEventArgs e)
{
this.Label1.Text = e.Result.ToString();
}

protected void asynSer_getEmployeeCompleted(object sender, AsynWebService.getEmployeeCompletedEventArgs e)
{
this.GridView1.DataSource = e.Result;
this.GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
//開始非同步調用getEmployee
asynSer.getEmployeeAsync();
} 到這里我們後台代碼就寫完了,但是我們還要在ASPX頁面設置一個允許非同步調用的屬性 Async="true"這樣就可以在這個頁面里進行非同步調用了!
同步調用的方法和非同步調用的方法不一樣,非同步調用談老的方法是WebServic的方法名+Async()作為方法名,同步調用的方法就是WebService的方法名。
其實從原理上看不管是Ajax還是Asp.Net或者Flex它們的非同步調用都是一樣的,下面我們來和Ajax比較一下Ajax中的核心對象--XMLHttpRequest對象一個非常重要的屬性就是onreadystatechange,下面是一個基於Ajax的簡單的用戶名的驗證<script language="javascript" type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}

function requestStart()
{
if(document.getElementById("tbx1").value.length <= 4)
{
alert("用戶名的長度要求大於4個字元!");
return false;
}
document.getElementById("sp1").innerText = "Loding";
var url = "default.aspx?userName=" + document.getElementById("tbx1").value;
createXMLHttpRequest();//創建XMLHttpRequest對象
xmlHttp.onreadystatechange = callBack;//為XMLHttpRequest對象指定結果處理函數
xmlHttp.open("GET",url);//打開鏈接
xmlHttp.send(null);//發送請求
}
//結果處理函數
function callBack()
{
if(xmlHttp.readyState == 4)
{
document.getElementById("sp1").innerText = xmlHttp.responseText;
}
}
</script>

㈡ java如何調用webservice介面

Java通過WSDL文件來調用直接調用模式如下:

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實現調用webserver

一、利用jdk web服務api實現,這里使用基於 SOAP message 的 Web 服務
1.首先建立一個Web services EndPoint:

Java代碼

package Hello;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;

@WebService
public class Hello {

@WebMethod
public String hello(String name) {
return "Hello, " + name + "\n";
}

public static void main(String[] args) {
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello);
}
}

Java代碼

package Hello;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;

@WebService
public class Hello {

@WebMethod
public String hello(String name) {
return "Hello, " + name + "\n";
}

public static void main(String[] args) {
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello);
}
}

2.使用 apt 編譯 Hello.java(例:apt -d [存放編譯後的文件目錄] Hello.java ) ,會生成 jaws目錄
3.使用java Hello.Hello運行,然後將瀏覽器指向http://localhost:8080/hello?wsdl就會出現下列顯示
4.使用wsimport 生成客戶端
使用如下:wsimport -p . -keep http://localhost:8080/hello?wsdl
5.客戶端程序

Java代碼

class HelloClient{
public static void main(String args[]) {
HelloService service = new HelloService();
Hello helloProxy = service.getHelloPort();
String hello = helloProxy.hello("你好");
System.out.println(hello);
}
}

Java代碼

class HelloClient{
public static void main(String args[]) {
HelloService service = new HelloService();
Hello helloProxy = service.getHelloPort();
String hello = helloProxy.hello("你好");
System.out.println(hello);
}
}

jsP非同步調用webservice,寫好了客戶端,在jsp頁面裡面調用客戶端,客戶端將請求發給service。

建議樓主首先先檢查是否導入了所有需要的jar包,然後這個問題解決了就好辦了。
在後台代碼中(Actioin文件,或者Servlet文件),寫好客戶端的調用代碼到一個函數中。然後顯示頁面可以使用兩種方式調用這個後台代碼:
1、直接向後台提交,獲取數據後再返回到顯示頁面。實現簡單,但是有刷屏現象
2、使用ajax調用後台代碼,在ajax中綁定一個調用成功後的響應函數(javascript函數)。在該函數中更新你的頁面元素就可以了,這樣不用刷屏。(使用JQuery就可以很容易實現)

㈤ 如何解決java axis 調用webservice伺服器操作異常

安裝Eclipse-jee,下載的最新版本Axis2 1.4.1 Release,其內部結構為 開發前配置:在Eclipse的菜單欄中,Window --> Preferences --> Web Service --> Axis2 Perferences,在Axis2 runtime location中選擇Axis2解壓縮包的位置,設置好後,點"OK"即行。 新建一個Java Project,命名為"WS_01",在"WS_01"項目上new --> other,找到"Web Services"下面的"Web Service"; 在出現的Web Services對象框,在Service implementation中點擊"Browse",進入Browse Classes對象框,查找到我們剛才寫的寫的CalculateService類。(如下圖)。點擊"ok",則回到 Web Service話框。 在Web Service對話框中,將Web Service type中的滑塊,調到"start service「的位置,將Client type中的滑塊調到"Test client"的位置。 在Web Service type滑塊圖的右邊有個"Configuration",點擊它下面的選項,進入Service Deployment Configuration對象框,在這里選擇相應的Server(我這里用Tomcat6.0)和Web Service runtime(選擇Apache Axis2) 點OK後,則返回到Web Service對話框,同理,Client type中的滑塊右邊也有"Configuration",也要進行相應的置,步驟同上。完成後,Next --> next即行。到了Server startup對話框,有個按鍵"start server",點擊它,則可啟動Tomcat伺服器了。 等啟完後,點擊"next -- > next",一切默認即行,最後,點擊完成。最後,出現如下界面:(Web Service Explorer),我們在這里便可測試我們的Web服務。 測試比較簡單,例如,我們選擇一個"plus"的Operation,出現下圖,在x的輸入框中輸入2,在y的 輸入框中輸入3,點擊"go",便會在status欄中顯示結果5.0。其他方法的測試也類似。

閱讀全文

與javawebservice非同步調用相關的資料

熱點內容
用於keil下的stc器件資料庫 瀏覽:400
新聞網站後台如何操作前台 瀏覽:539
在剪映app中怎麼查看視頻尺寸 瀏覽:9
linux文件成分包括 瀏覽:886
文件轉換免費的軟體 瀏覽:644
linuxwpsxlsx 瀏覽:482
小米手機怎麼上移動網路連接失敗怎麼辦 瀏覽:598
win10系統打開java 瀏覽:479
全日制編程什麼意思 瀏覽:447
筆記本創建區域網怎麼傳文件 瀏覽:871
怎樣查看id密碼 瀏覽:647
贛州極客晨星少兒編程怎麼樣 瀏覽:690
覺醒年代哪個app可以免費觀看 瀏覽:830
如何關閉win10觸摸屏幕 瀏覽:761
蘋果142不能傳文件 瀏覽:128
如何看歷史底部數據 瀏覽:230
怎麼在電腦上下軟體或安裝app 瀏覽:798
qq頭像電影截圖情侶 瀏覽:87
安卓的網路位置設置在哪 瀏覽:973
編程俠官網如何登錄 瀏覽:484

友情鏈接