inttostr java_Delphi和Java实现webservice架构
Webservice現(xiàn)在已經(jīng)不是什么新技術(shù)了,用java建立webservice是快捷的,但是用java在制作客戶(hù)端的感覺(jué)上總是不如 Delphi的(個(gè)人感覺(jué),java高手們不要笑話我),那我們就用java實(shí)現(xiàn)webservice的服務(wù)端程序,delphi制作客戶(hù)端。
一.環(huán)境搭建
jdk和tomcat的安裝和配置我在這里不進(jìn)行行介紹了。說(shuō)明一點(diǎn)我的tomcat是安裝在D:\tomcat,設(shè)定端口是8099。
安裝Axis
1.可以從http://ws.apache.org/axis/下載axis的最新版本,我使用的是axis1.2。
2.解壓縮axis-bin-1_2beta.zip,將axis-1_2beta目錄中webapps下的axis目錄全部拷貝到tomcat的安裝目錄中webapps下。
3.將axis\lib中的所有jar文件都添加到classpath系統(tǒng)變量中。
注(用戶(hù)需根據(jù)自己的安裝路徑進(jìn)行更改):
.;
d:\tomcat\webapps\axis\WEBINF\lib\axis.jar;
d:\tomcat\webapps\axis\WEB-INF\lib\saaj.jar;
d:\tomcat\webapps\axis\WEB-INF\lib\commons-logging.jar;
d:\tomcat\webapps\axis\WEB-INF\lib\commons-discovery.jar;
d:\tomcat\webapps\axis\WEB-INF\lib\wsdl4j.jar;
d:\tomcat\webapps\axis\WEBINF\lib\jaxrpc.jar;
4.啟動(dòng)tomcat訪問(wèn)http://cbf107:8099/axis/index.html(這里使用的主機(jī)名和端口號(hào)和使用的tomcat所配置一致)。
可以見(jiàn)到如下頁(yè)面:
二.Web?Service服務(wù)端開(kāi)發(fā)
寫(xiě)一個(gè)java小程序:
public?class?Test{
public?int?add(int?p1,?int?p2)?{
return?p1?+?p2;
}
public?int?subtract(int?p1,?int?p2)?{
return?p1?-?p2;
}
}
在D:\Tomcat\webapps\axis?目錄下新建一個(gè)test文件夾,將它保存在里面,注意:后綴名改為jws,也就是Test.jws?。
在瀏覽器里訪問(wèn):http://cbf107:8099/axis/test/Test.jws可以看到
點(diǎn)擊“Click?to?see?the?WSDL”出現(xiàn)
將這頁(yè)另存為xml文檔(我們?cè)谑褂胐elphi制作客戶(hù)端的時(shí)候會(huì)使用)
三.delphi實(shí)現(xiàn)Web?Service客戶(hù)端開(kāi)發(fā)
打開(kāi)delphi新建工程,在form上放置兩個(gè)edit和兩個(gè)button,button的name命名為
btnadd和btnsubtract,caption命名為add和subtract。
再file->new->other,選擇webservice里的WSDL?importer
在search?UDDI..里選擇前面我們保存的那個(gè)xml文件,點(diǎn)擊next最后finish
?
全部保存,我們發(fā)現(xiàn)delphi的工程中多了test1.pas
打開(kāi)發(fā)現(xiàn)有這樣一段接口申明:
Test?=?interface(IInvokable)
[‘{52882FF0-46E2-6644-A77B-CE714D4CBFD5}‘]
function??add(const?p1:?Integer;?const?p2:?Integer):?Integer;?stdcall;
function??subtract(const?p1:?Integer;?const?p2:?Integer):?Integer;?stdcall;
end;
那我們可以直接調(diào)用這個(gè)接口了,這時(shí)候我們回到界面,從delphi的webservices面版中托放一個(gè)soap到form上。
設(shè)置屬性如圖:
最后我們可以完成我們的代碼了:
1.在uses里添加test1因?yàn)槲覀円眠@個(gè)單元。
2.添加全局變量t1:test;(t1是一個(gè)test接口)
3.為兩個(gè)button添加click事件
procedure?TForm1.btnaddClick(Sender:?TObject);
var
i,j,z:integer;
begin
i:=strtoint(edit1.Text);
j:=strtoint(edit2.Text);
t1:=(HttPRIO1?as?test);
z:=t1.add(i,j);
t1._Release;
showmessage(inttostr(z));
end;
procedure?TForm1.btnsubstractClick(Sender:?TObject);
var
i,j,z:integer;
begin
i:=strtoint(edit1.Text);
j:=strtoint(edit2.Text);
t1:=(HttPRIO1?as?test);
z:=t1.subtract(i,j);
t1._Release;
showmessage(inttostr(z));
end;
4.F9運(yùn)行程序進(jìn)行測(cè)試
看我們有用delphi實(shí)現(xiàn)了java寫(xiě)的那段程序,不是嗎。
5.也許到這里你認(rèn)為應(yīng)該已經(jīng)完成了,沒(méi)錯(cuò)!不過(guò)對(duì)webservice還不夠了解的
朋友你再修改一下那個(gè)java程序,也就是將Test.jws里的這個(gè)方法
public?int?add(int?p1,?int?p2)?{
return?p1?+?p2;
}
改為
public?int?add(int?p1,?int?p2)?{
return?p1?+?p2+10;
}
再運(yùn)行一下你的客戶(hù)端程序看看。
四.注:unit1的所有代碼
unit?Unit1;
interface
uses
Windows,?Messages,?SysUtils,?Variants,?Classes,?Graphics,?Controls,?Forms,
Dialogs,?StdCtrls,?Rio,?SOAPHTTPClient,Test1;
type
TForm1?=?class(TForm)
HTTPRIO1:?THTTPRIO;
Edit1:?TEdit;
Edit2:?TEdit;
btnadd:?TButton;
btnsubstract:?TButton;
procedure?Edit2KeyPress(Sender:?TObject;?var?Key:?Char);
procedure?btnaddClick(Sender:?TObject);
procedure?btnsubstractClick(Sender:?TObject);
private
{?Private?declarations?}
public
{?Public?declarations?}
end;
var
Form1:?TForm1;
t1:test;
implementation
{$R?*.dfm}
//這里是為了讓?兩個(gè)edit只能輸入數(shù)字,edit1的onkeypress直接調(diào)用這個(gè)就可以了。
procedure?TForm1.Edit2KeyPress(Sender:?TObject;?var?Key:?Char);
begin
if?key?in?[‘0‘..‘9‘]=false?then
key:=#0;
end;
procedure?TForm1.btnaddClick(Sender:?TObject);
var
i,j,z:integer;
begin
i:=strtoint(edit1.Text);
j:=strtoint(edit2.Text);
t1:=(HttPRIO1?as?test);
z:=t1.add(i,j);
t1._Release;
showmessage(inttostr(z));
end;
procedure?TForm1.btnsubstractClick(Sender:?TObject);
var
i,j,z:integer;
begin
i:=strtoint(edit1.Text);
j:=strtoint(edit2.Text);
t1:=(HttPRIO1?as?test);
z:=t1.subtract(i,j);
t1._Release;
showmessage(inttostr(z));
end;
end.
總結(jié)
以上是生活随笔為你收集整理的inttostr java_Delphi和Java实现webservice架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PHP 将文字转化mp3文件
- 下一篇: java中udi_Java读取.prop