随着internet/intranet的发展,开发模式发生了变化,第一波重要的技术是http/html,他给internet/intranet和电子商务都带来重要的影响;第二波是java技术的兴起,java带来了跨品台的锲机,让开发人员可以使用单一的语言和环境开发应用系统;第三波是xml技术的兴起,它提供了标准的数据封装,让数据交换跨越了各种平台、操作系统和各种工具,通过xml,各种数据交换不再让人头痛。
webservice 的概念是使用一个标准的输出接口来定义代码提供的功能,以便让外界可以通过这个标准的输出接口来调用,而所谓的标准输出接口就是wsdl,wsdl是一个xml组成的文件,描述了实现程序对外提供函数的原型,客户端可以通过wsdl来调用实现程序提供的服务代码。在这里我不想详细的介绍webservice的原理和概念,通过一个例子来展示新的基于网络的开发模式。
在这个例子中服务端用java完成,客户端用delphi完成,开发工具是jbuilder9和delphi7,服务器是tomcat5.0。
首先建立服务端程序:
启动jbuilder建立一个工程,设置服务器为tomcat4.0(因为jbuilder9不支持tomcat5.0,实现后将其在tomcat5.0中发布)。
新建一个class 代码如下:
public class helloworld{
public string sayhello(){
return "hello world!";
}
public string echo(string u){
return "hello " + u;
}
}
选择file菜单new,在弹出的对话框中选择web services页中的web serivice configuation wizard,新建webapp axis并配置servers。
再次选择file菜单,new再出现的窗口中选择export as a web service wizard,在弹出的向导中选择要导出的类名,其它项直接选默认值即可。
运行刚才建立的程序,出现“jbuilder apache axis admin console”的页面表示刚才建立的webservice成功。点击view超级链接进入“and now... some services”页面,点击helloworld(wsdl)的链接出现wsdl描述文件,至此webservice服务端建立完成。
将刚才建立的webservice发布到tomcat5.0中,在tomcat的webapps目录下新建webservicetest目录,将用jbulider建立的工程目录下的 axis目录下的文件全部复制到其中,重新启动tomcat,访问http://localhost:8080/webservicetest/,如果看到“jbuilder apache axis admin console”页面说明发布成功。
启动delphi7新建一个工程,然后选择新建webservices中wsdl importer向导,将刚才发布的webservice描述文件wsdl导入(我的地址是:http://localhost:8080/webservicetest/services/helloworld?wsdl)自动生成一个单元helloworld1,在unit1中使用单元helloworld1,在窗体上放置两个button,在button1的click事件中写如下测试代码:
procedure tform1.button1click(sender: tobject);
var
test:helloworld;
str:string;
begin
test := gethelloworld;(得到webservice提供的远程接口)
str := test.sayhello;
showmessage(str);
test := nil;
end;
运行测试程序, 弹出“hello,world”说明成功。button的测试代码类似,我在这里不再重复。
至此,一个完成webservice程序完成,并能顺利运行。
闽公网安备 35060202000074号