首先取得java-webservice服务器端地址。我的是:http://localhost:8080/mywebservice/services/mywebservice?wsdl
然后打开delphi7,file-new-other:选择WebService选项卡,在选择WSDLImporter
,在弹出的界面中输入java-webservice地址。点击Next-finish.会生成一个.pas的webservice文件,
生成的代码如下:
// ************************************************************************ //
// 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.
新建一个form窗体,拖入一个Button和一个edit控件。
在窗体的uses部分加入InvokeRegistry, Rio, SOAPHTTPClient, mywebservice。
为Button添加click事件。
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服务器端程序示例已经完成。
- 大小: 52 KB
- 大小: 21.8 KB
分享到:
相关推荐
标题 "Delphi调用Java WebService实例" 涉及的是在Delphi编程环境中如何与Java WebService进行交互的技术。Delphi是一款强大的Windows应用程序开发工具,而Java WebService则是一种基于标准的,跨平台的远程调用技术...
7. **错误处理**:在调用WebService时,可能会遇到网络问题、权限错误或其他异常。因此,确保添加适当的错误处理代码,如Try-Catch块,以便捕获并处理这些问题。 8. **释放资源**:在完成调用后,记得释放创建的...
### Delphi调用C#开发的Webservice服务详解 在软件开发领域,不同语言和平台间的相互调用是一项重要的技术需求。本文将详细介绍如何利用Delphi来调用由C#开发的Webservice服务,并通过一个具体的例子来演示整个过程...
总之,Delphi调用Java WebService是一个涉及网络通信、XML解析和对象间的交互过程。理解这个过程对于跨平台开发和系统集成至关重要。通过实践和学习,开发者可以熟练掌握这一技能,提升自己的IT专业素养。
这个简单的Delphi调用Web Service的例子,展示了如何利用Delphi与外部服务进行交互,获取并处理数据。对于初学者来说,这是一个很好的起点,帮助他们了解如何在实际项目中整合Web Service技术。随着经验的积累,...
### 使用 Delphi 实现 WebService 的详细步骤 在软件开发领域,使用 Delphi 开发工具构建 WebService 是一种常见的需求。本文将详细阐述如何利用 Delphi 来实现 WebService,包括服务端与客户端的开发流程。 #### ...
本示例探讨的是如何利用Delphi调用Webservice来实现数据库操作的基本功能,包括增(Add)、删(Delete)、改(Update)和查(Query)。Webservice是一种基于Web的接口,它允许不同系统之间通过HTTP协议交换数据,...
首先,Delphi调用Web服务通常涉及以下几个关键步骤: 1. **导入WSDL文件**: - 导入Web服务的定义文件(WSDL,Web Services Description Language)是开始调用Web服务的第一步。在Delphi中,可以通过`File` -> `...
### Delphi调用WebService知识点详解 #### 一、Delphi调用C#编写的WebService 在实际项目开发中,Delphi与其他语言(如C#)编写的WebService进行交互是一种常见的需求。本文档主要介绍了如何使用Delphi 7来调用C#...
6. **测试与调用**:使用SOAP客户端(如Delphi的THTTPRIO组件)或其他语言的SOAP库,根据WSDL文件调用Webservice。 在提供的"WebService"压缩包中,可能包含了示例代码、项目文件、或者教程文档,帮助开发者理解...
在开发过程中,开发者可能会遇到一个问题:当尝试使用Delphi 7编译的程序调用WebService时,由于Windows的数据执行保护(DEP,Data Execution Prevention)机制,程序可能会遭遇运行错误。DEP是一种安全特性,旨在...
**标题:Delphi WebService 示例** ...通过这个Delphi WebService示例,开发者可以学习到如何在Delphi环境下创建、测试和部署Web Service,以及如何与之交互,这对于构建分布式系统和实现企业级应用集成具有重要意义。
总结来说,"delphi+C#webservice上传文件"是一个跨平台的应用程序开发实践,涉及到Delphi客户端通过Webservice与C#服务器端交互,实现文件的上传功能。理解Webservice的工作原理以及如何在Delphi和C#中分别实现文件...
ISAPI扩展运行在服务器端,直接与IIS交互,提供高效且低级别的访问控制。 2. **Delphi与ISAPI的结合**: Delphi提供了ISAPI开发的工具和库,使得开发者可以使用Delphi的可视化设计和强大的编译器来构建ISAPI扩展,...
Delphi 调用 WebService 的实例是一个非常经典的示例,涵盖了许多重要的知识点,包括 Dispatch、Invoke、Invokable、TReomtable、TSOAPAttachment、Base64 编码、UTF8 和 ASCII、SOAP 和 WSDL、处理中文乱码的问题、...
在Delphi WebService中,需要定义一个可以被外部调用的方法来执行数据库查询操作。示例代码中定义了一个名为`Select`的方法。 ```pascal function Select: string; ``` 此方法返回一个字符串类型的值,表示查询...
通过这个个人开发的DELPHI WEBSERVICE示例,我们可以深入了解如何利用DELPHI实现网络服务,以及在实践中可能遇到的问题和解决策略。对于想要深入学习DELPHI和Web服务开发的人来说,这是一个非常有价值的参考资料。
在这个示例中,我们将学习如何在Delphi XE7环境下编写和调用WebService接口。 4. **项目文件**: - **SMS.cfg**:这可能是配置文件,包含了连接亿美短信服务所需的账号、密码等信息。 - **Main.dfm**:这是Delphi...
SatJni是C++编写的动态链接库,实现了C#,PB,Delphi,VB,VC等对Java的调用,能让你很容易地调用成熟的java类库和第三方...示例中演示了PB调用webservice服务(无需代理对象)得到电话号码和天气信息、调用Base64和MD5等。
【Delphi调用WebService】是开发过程中的常见需求,特别是在多语言、跨平台的应用系统间进行数据交互时。本文主要围绕Delphi如何调用WebService,尤其是针对C#编写的WebService,进行详细的总结。 首先,调用...