`

delphi7调用java服务器端webservice示例

阅读更多
首先取得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编程环境中如何与Java WebService进行交互的技术。Delphi是一款强大的Windows应用程序开发工具,而Java WebService则是一种基于标准的,跨平台的远程调用技术...

    delphi调用asp.net中的WebService 实例

    7. **错误处理**:在调用WebService时,可能会遇到网络问题、权限错误或其他异常。因此,确保添加适当的错误处理代码,如Try-Catch块,以便捕获并处理这些问题。 8. **释放资源**:在完成调用后,记得释放创建的...

    Delphi调用Webservice一个完整的例子

    ### Delphi调用C#开发的Webservice服务详解 在软件开发领域,不同语言和平台间的相互调用是一项重要的技术需求。本文将详细介绍如何利用Delphi来调用由C#开发的Webservice服务,并通过一个具体的例子来演示整个过程...

    Delphi-Invoke-Java-WebService.rar_delphi webservice_delphi的invok

    总之,Delphi调用Java WebService是一个涉及网络通信、XML解析和对象间的交互过程。理解这个过程对于跨平台开发和系统集成至关重要。通过实践和学习,开发者可以熟练掌握这一技能,提升自己的IT专业素养。

    Delphi调用webservice例子

    这个简单的Delphi调用Web Service的例子,展示了如何利用Delphi与外部服务进行交互,获取并处理数据。对于初学者来说,这是一个很好的起点,帮助他们了解如何在实际项目中整合Web Service技术。随着经验的积累,...

    用Delphi-实现WebService

    ### 使用 Delphi 实现 WebService 的详细步骤 在软件开发领域,使用 Delphi 开发工具构建 WebService 是一种常见的需求。本文将详细阐述如何利用 Delphi 来实现 WebService,包括服务端与客户端的开发流程。 #### ...

    delphi调用Webservice实现增删改查功能的源代码示例

    本示例探讨的是如何利用Delphi调用Webservice来实现数据库操作的基本功能,包括增(Add)、删(Delete)、改(Update)和查(Query)。Webservice是一种基于Web的接口,它允许不同系统之间通过HTTP协议交换数据,...

    Delphi开发和调用的webservice

    首先,Delphi调用Web服务通常涉及以下几个关键步骤: 1. **导入WSDL文件**: - 导入Web服务的定义文件(WSDL,Web Services Description Language)是开始调用Web服务的第一步。在Delphi中,可以通过`File` -> `...

    delphi调用webservice总结(c#,delphi,java).doc

    ### Delphi调用WebService知识点详解 #### 一、Delphi调用C#编写的WebService 在实际项目开发中,Delphi与其他语言(如C#)编写的WebService进行交互是一种常见的需求。本文档主要介绍了如何使用Delphi 7来调用C#...

    delphi 版webservice例子

    6. **测试与调用**:使用SOAP客户端(如Delphi的THTTPRIO组件)或其他语言的SOAP库,根据WSDL文件调用Webservice。 在提供的"WebService"压缩包中,可能包含了示例代码、项目文件、或者教程文档,帮助开发者理解...

    解决Delphi7数据执行保护

    在开发过程中,开发者可能会遇到一个问题:当尝试使用Delphi 7编译的程序调用WebService时,由于Windows的数据执行保护(DEP,Data Execution Prevention)机制,程序可能会遭遇运行错误。DEP是一种安全特性,旨在...

    delphi webservice示例

    **标题:Delphi WebService 示例** ...通过这个Delphi WebService示例,开发者可以学习到如何在Delphi环境下创建、测试和部署Web Service,以及如何与之交互,这对于构建分布式系统和实现企业级应用集成具有重要意义。

    delphi+C#webservice上传文件

    总结来说,"delphi+C#webservice上传文件"是一个跨平台的应用程序开发实践,涉及到Delphi客户端通过Webservice与C#服务器端交互,实现文件的上传功能。理解Webservice的工作原理以及如何在Delphi和C#中分别实现文件...

    Delphi开发的webservice实例

    ISAPI扩展运行在服务器端,直接与IIS交互,提供高效且低级别的访问控制。 2. **Delphi与ISAPI的结合**: Delphi提供了ISAPI开发的工具和库,使得开发者可以使用Delphi的可视化设计和强大的编译器来构建ISAPI扩展,...

    Delphi调用WebService的实例(非常经典).docx

    Delphi 调用 WebService 的实例是一个非常经典的示例,涵盖了许多重要的知识点,包括 Dispatch、Invoke、Invokable、TReomtable、TSOAPAttachment、Base64 编码、UTF8 和 ASCII、SOAP 和 WSDL、处理中文乱码的问题、...

    Delphi WebService操作数据库

    在Delphi WebService中,需要定义一个可以被外部调用的方法来执行数据库查询操作。示例代码中定义了一个名为`Select`的方法。 ```pascal function Select: string; ``` 此方法返回一个字符串类型的值,表示查询...

    个人用DELPHI写的WEBSERVICE

    通过这个个人开发的DELPHI WEBSERVICE示例,我们可以深入了解如何利用DELPHI实现网络服务,以及在实践中可能遇到的问题和解决策略。对于想要深入学习DELPHI和Web服务开发的人来说,这是一个非常有价值的参考资料。

    亿美短信网关WebService_Delphi XE7示例

    在这个示例中,我们将学习如何在Delphi XE7环境下编写和调用WebService接口。 4. **项目文件**: - **SMS.cfg**:这可能是配置文件,包含了连接亿美短信服务所需的账号、密码等信息。 - **Main.dfm**:这是Delphi...

    PB调用java组件SatJni

    SatJni是C++编写的动态链接库,实现了C#,PB,Delphi,VB,VC等对Java的调用,能让你很容易地调用成熟的java类库和第三方...示例中演示了PB调用webservice服务(无需代理对象)得到电话号码和天气信息、调用Base64和MD5等。

    Delphi调用webservice总结.pdf

    【Delphi调用WebService】是开发过程中的常见需求,特别是在多语言、跨平台的应用系统间进行数据交互时。本文主要围绕Delphi如何调用WebService,尤其是针对C#编写的WebService,进行详细的总结。 首先,调用...

Global site tag (gtag.js) - Google Analytics