delphi7编写客户端调用java服务器端webservice示例
1. 首先取得java-webservice服务器端地址。我的是:http://localhost:8080/mywebservice/services/mywebservice?wsdl
2. 然后打开delphi7,file-new-other:选择WebService选项卡,在选择WSDLImporter 
,在弹出的界面中输入java-webservice地址。点击Next-finish.会生成一个.pas的webservice文件,

生成的代码如下: 
Java代码  收藏代码
// ************************************************************************ //  
// The types declared in this file were generated from data read from the  
// WSDL File described below:  
// WSDL     : http://localhost:8080/mywebservice/services/mywebservice?wsdl  
// Encoding : UTF-8  
// Version  : 1.0  
// (2011-7-21 10:17:02 - 1.33.2.5)  
// ************************************************************************ //
unit mywebservice;
interface
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
type
// ************************************************************************ //  
  // The following types, referred to in the WSDL document are not being represented  
  // in this file. They are either aliases[@] of other types represented or were referred  
  // to but never[!] declared in the document. The types from the latter category  
  // typically map to predefined/known XML or Borland types; however, they could also   
  // indicate incorrect WSDL documents that failed to declare or import a schema type.  
  // ************************************************************************ //  
  // !:int             - "http://www.w3.org/2001/XMLSchema"  
  // !:string          - "http://www.w3.org/2001/XMLSchema"
// ************************************************************************ //  
  // Namespace : http://server  
  // transport : http://schemas.xmlsoap.org/soap/http  
  // style     : document  
  // binding   : mywebserviceHttpBinding  
  // service   : mywebservice  
  // port      : mywebserviceHttpPort  
  // URL       : http://localhost:8080/mywebservice/services/mywebservice  
  // ************************************************************************ //  
  mywebservicePortType = interface(IInvokable)  
  ['{56F18980-71B1-FAC0-BFF5-569F621A8591}']  
    function  add(const a: Integer; const b: Integer): Integer; stdcall;  
    function  sayHello(const name: WideString): WideString; stdcall;  
  end;
function GetmywebservicePortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): mywebservicePortType;
implementation
function GetmywebservicePortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): mywebservicePortType;  
const  
  defWSDL = 'http://localhost:8080/mywebservice/services/mywebservice?wsdl';  
  defURL  = 'http://localhost:8080/mywebservice/services/mywebservice';  
  defSvc  = 'mywebservice';  
  defPrt  = 'mywebserviceHttpPort';  
var  
  RIO: THTTPRIO;  
begin  
  Result := nil;  
  if (Addr = '') then  
  begin  
    if UseWSDL then  
      Addr := defWSDL  
    else  
      Addr := defURL;  
  end;  
  if HTTPRIO = nil then  
    RIO := THTTPRIO.Create(nil)  
  else  
    RIO := HTTPRIO;  
  try  
    Result := (RIO as mywebservicePortType);  
    if UseWSDL then  
    begin  
      RIO.WSDLLocation := Addr;  
      RIO.Service := defSvc;  
      RIO.Port := defPrt;  
    end else  
      RIO.URL := Addr;  
  finally  
    if (Result = nil) and (HTTPRIO = nil) then  
      RIO.Free;  
  end;  
end;
initialization  
  InvRegistry.RegisterInterface(TypeInfo(mywebservicePortType), 'http://server', 'UTF-8');  
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(mywebservicePortType), '');  
  InvRegistry.RegisterInvokeOptions(TypeInfo(mywebservicePortType), ioDocument);  
  InvRegistry.RegisterExternalParamName(TypeInfo(mywebservicePortType), 'add', 'out_', 'out');  
  InvRegistry.RegisterExternalParamName(TypeInfo(mywebservicePortType), 'sayHello', 'out_', 'out');
end.
3.
新建一个form窗体,拖入一个Button和一个edit控件。 
在窗体的uses部分加入InvokeRegistry, Rio, SOAPHTTPClient, mywebservice。 
为Button添加click事件。 
Java代码  收藏代码
procedure TForm1.Button1Click(Sender: TObject);  
var  
server:mywebservicePortType;//此处为delphi生成的java-webservice的方法名。  
aa:string;  
begin  
 server:=GetmywebservicePortType(true,'',nil);//delphi生成的方法  
 showmessage(server.sayHello(Edit1.Text));//调用java-webservice的sayHello()方法。  
end;
到此,delphi调用java的webservice服务器端程序示例已经完成。

delphi7编写客户端调用java服务器端webservice示例的更多相关文章
- .net 客户端调用java或.net webservice进行soapheader验证
		.net 客户端调用java或.net webservice进行soapheader验证 最近项目中有业务需要跨平台调用web服务,客户端和服务器之间采用非对称加密来保证数据的安全性,webservi ... 
- Java与WCF交互(二):WCF客户端调用Java web service【转】
		原文:http://www.cnblogs.com/downmoon/archive/2010/08/25/1807982.html 在上篇< Java与WCF交互(一):Java客户端调用WC ... 
- .NET调用JAVA的WebService方法
		调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,在网上也有相关资料, ... 
- 转载——Java与WCF交互(二):WCF客户端调用Java Web Service
		在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttp ... 
- Delphi动态调用Java的WebService  转
		Delphi动态调用Java的WebService —— 基于“Axis2发布WebService例子(HelloWorld)” uses ComObj; var WsObject: Variant; ... 
- C#调用Java的WebService添加SOAPHeader验证(2)
		C#调用Java的WebService添加SOAPHeader验证 上一篇链接如上,更像是 Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#) 来处理xml, ... 
- C#调用Java的WebService添加SOAPHeader验证
		C#调用Java的WebService添加SOAPHeader验证(2) 1.问题描述 调用的Java的webservice string Invoke(string func, string req ... 
- Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)
		相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ... 
- Java客户端调用.NET的WebService
		项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ... 
随机推荐
- SKNode类
			继承自 UIResponder:NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架 /System/Library/Frameworks/Sprit ... 
- 树莓派学习笔记——交叉编译练习之SQLite3安装
			0.前言 本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多. [1]假设使用Python,那么不必安装SQLite由于P ... 
- iOS_15_通过代码自己定义cell_微博UI
			终于效果图: BeyondTableViewController.h // // BeyondTableViewController.h // 15_代码自己定义cell_weibo // // Cr ... 
- html表格合并(行,一排)
			<table> <tr> <td colspan="2">失败的例子:</td> </tr> {% for ip , j ... 
- HashSet内存泄露
			import java.util.HashSet; import java.util.Set; public class PersonTest { public static void main(St ... 
- Session深度探索
			什么是Session? web是无状态,这意味着每次页面被回传到服务器时,都重新生成一个web页面类的一个新的实例.众所周知http时无状态的协议.它不能获得客户端的信息.如果用户录入了一些信息,当跳 ... 
- HTTP头信息解读
			本文为多篇“HTTP请求头相关文章”及<HTTP权威指南>一书的阅读后个人汇总整理版,以便于理解. 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.客户端向服务器发 ... 
- SQL用row_number进行高速循环
			SQL用row_number进行循环查询 declare @count int=0,@R int=0select row_number()over(order by RoomID) as R,* in ... 
- php随机密码
			<?php /* * php自动生成新密码自定义函数(带实例演示) 适用环境: PHP5.2.x / mysql 5.0.x * */ function genPassword($a=1,$b= ... 
- 将Activity设置成半透明的对话框
			将Activity设置成半透明的对话框 在定义Activity时指定Theme.Dialog主题就可以将Activity设置成对话框风格.通过修饰Theme.Dialog主题的android:wind ... 
