如何利用Web Service在Java与Delphi之间进行通信(还有个小问题)

                            
新学的Delphi,用的Delphi6,简单实践了一下用Delphi与Java之间用Web   Service进行调用下面是方法,Java部分写的不是很详细,见谅。   
   
  一、在JBuilder中创建Web   Service  
  1.   新建一个JavaBean,有Sample属性的Get及Set方法  
  2.   配置JBuilder的Server为WebLogic,Run   →Run   Project运行WEbLogic  
  3.   右键点击Bean1.java,选择Export   As   Web   Service,出现配置向导。  
  4.   New一个EAR,接受默认设置,返回后再New一个Web   App,在ToolKit中选择WebLogic  
  5.   完成后,将打开Export   As   a   Web   Service向导,全部接受默认设置。  
  6.   右键在exportBean.eargrp节点,选择Deploy,将其部署在WebLogic上。(exportBean是你的项目名)  
  7.   在Tools→Web   Service   Console,在浏览器中你会看到该Web   Service有两个方法,getSample及setSample,你可以点击其中一个方法,在新的页面中Invoke一下,测试一下是否成功。  
  这样,一个Web   Service就基本成功了。  
  二、在Delphi中调用Web   Service  
  1.New¦Application  
  2.SaveAll,Unit1命名为ClnMain,Project1命名为SoapClient  
  3.New¦WebServices¦WebServicesImporter,在URL中输入:"http://localhost:7001/web-services/exportbean?WSDL"(在Web   Service   Console页面中有),如果上面用IE看没错的话,这时确定后将产生一个单元,其中有我们在服务端定义的接口  
  4.SaveAll,Unit1命名为SoapIntf,再在ClnMain中Uses加入SoapIntf  
  5.在Form1上放上Edit,   Label,   Button,   HTTPRIO(在Web   Services页中的第一个)四个控件,设置HTTPRIO1.URL为:http://localhost:7001/web-services/Bean1  
  6.双击Button1输入下面的程序:  
  var  
      p:   Bean1Port;  
  begin  
      p   :=   HTTPRIO1   as   Bean1Port;  
      p.setSample(Edit1.Text);  
  end;  
  7.编译运行,在Edit1中输入"Hello"按Button1,然后转到Web   ServiceConsole中,Invoke   getSample,你将看到返回值为Hello  
  8.   同样,你可以调用getSample方法。  
   
  三、问题:  
  在调用getSample时,需要先声明一个WideString类型的out参数用来接收返回值,  
  但是在实际应用的时候,却总是报错,不知道为什么,下面是代码,哪位大侠知道?  
  procedure   TForm1.Button2Click(Sender:   TObject);  
  var  
      p:   Bean1Port;  
      tt   :   WideString;  
  begin  
      p   :=   HTTPRIO1   as   Bean1Port;  
      p.getSample(tt);  
      ShowMessage(tt);  
  end;  
 

查看回复