webservice服务器端会提供wsdl接口文档,pb里面用web service proxy wizard从wsdl生成对象,再调用即可(注意把c:\program files\sybase\shared\powerbuilder下面的pbsoapclient90.pbd加入target),代码样例:
SoapConnection lsc_conn
soapservice lproxy_obj
String ls_proxy_name = "soapservice "//生成的代理对象名称
String ls_url = "localhost:8080/axis/services/SoapService "//web service url
//
lsc_conn = Create SoapConnection
lsc_conn.SetOptions( "SoapLog=~ "~ " ")
int li_ret, i
li_ret = lsc_conn.Createinstance( lproxy_obj, ls_proxy_name, ls_url)
If li_ret <> 0 Then
MessageBox( "错误 ", "调用失败,错误号码: " + String(li_ret))
SoapConnection lsc_conn
soapservice lproxy_obj
String ls_proxy_name = "soapservice "//生成的代理对象名称
String ls_url = "localhost:8080/axis/services/SoapService "//web service url
//
lsc_conn = Create SoapConnection
lsc_conn.SetOptions( "SoapLog=~ "~ " ")
int li_ret, i
li_ret = lsc_conn.Createinstance( lproxy_obj, ls_proxy_name, ls_url)
If li_ret <> 0 Then
MessageBox( "错误 ", "调用失败,错误号码: " + String(li_ret))
Return
End If
tns1__requestcontent lst_request
lst_request.arg1 = 5
lst_request.arg2 = "test "
tns1__returnresult lst_result
lst_result = lproxy_obj.GetResult(lst_request)
MessageBox(String(sult), "code: " + de + "~nmessage: " + &
ssage + "~ndesc: " + ason.desc )
注意pb调用webservice只能返回简单的int string类型,复杂的结构会出错
End If
tns1__requestcontent lst_request
lst_request.arg1 = 5
lst_request.arg2 = "test "
tns1__returnresult lst_result
lst_result = lproxy_obj.GetResult(lst_request)
MessageBox(String(sult), "code: " + de + "~nmessage: " + &
ssage + "~ndesc: " + ason.desc )
注意pb调用webservice只能返回简单的int string类型,复杂的结构会出错
怎么样在pb9里面调用WebService
pb9也出来了,速度够快的,大概看了一下,与pb8比较,增加的功能不多,主要是WebService,Xml和Ejb.我就感受了一下pb9的WebService功能,与大家共享。
我们用一个实例来说明:
新建应用,这些步骤与pb8一致的。然后建立一个WebService Proxy Wizard,下一步会提示你输入WSDL文件,点击浏览选择,假设是C:\inetpub\wwwroot\的service1.wsdl文件。点击下一步,会自动出现WSDL文件中的Service.点击下一步,系统默认选择ServiceSoap,紧接着输入proxy name(代理对象名),输入test_ws.后面的几项按默认即可。
完成后是编译代理对象的界面。会出现:
Web Service Generator Project Status
Deployment PBL: E:\program\pb\webservice\w_app.pbl
Clear PBL on build: No
Confirm overwrites: No
WSDL Location: file://E:\program\pb\webservice\service1.wsdl
Services selected :
Service Service1:
Service1Soap
可以在属性中设置,也可以不用去管。点击编译的绿图标,好了,一个代理对象生成了。
在左边的treeview中可以看到如:test_wsservice1soap的东西。
点击加号的图标,在function中可以看到里面的我们定义的调用webservice服务show(string yourname) returns string.
好了最重要的一步已经完成了,我们来测试一下:
建一个windows,添加一个文本框和按钮控件。
在cb_1.click事件写入:
SoapConnection conn
Test_wsservice1soap test_ws
long rVal
//string str_endpoint
//str_endpoint = "localhost/webserver/service1.asmx?WSDL"
conn = create SoapConnection
rVal = Conn.CreateInstance(test_ws, "test_wsservice1soap")
= test_ws.show("你的参与是我们最大的支持")
destroy conn
好了,保存,会提示SoapConnection未定义。
增加PBSoapClient90.pbd到库列表中。PBSoapClient90.pbd在pb安装目录下 Shared\PowerBuilder。增加后左边treeview会出现soapconnection,SOAP server
soapexception 两个对象.
运行,点击按钮,文本框中出现www.ourfly欢迎你的参与是我们最大的支持
注意的是:Service1.asmx文件在服务器上是可以运行的,否则不会出现东西的。
添加PBSoapClient90.pbd和引用webservice
作者:feique123 2009-10-10 15:06 星期六 晴
1、 PBSoapClient90.pbd在pb安装目录下 Shared\PowerBuilder。在pb的tree中的target属性中添加。增加后左边treeview会出现soapconnection,SOAP server soapexception 两个对象.。
2、在一个按钮的click事件中写的如下例子。
SoapConnection conn
Test_wsservicesoap test_ws
long rVal
conn = create SoapConnection
rVal = Conn.CreateInstance(test_ws, "test_wsservicesoap")
=string(test_ws.jihe("select * from t_user", "t_user"))
destroy conn
注:test_ws为代理对象名
3、要想在pb中用webservice必须要建一个webservice,其引用的wsdl文件,应该是pb所在机器上访问到的wsdl文件,也就是所能访问的webservice服务。
PBDOM操作XML文档轻松入门(Easy XML with PowerBuilder Document Object Model)
(作者:Terry Voth、JohnStrano)
(根据www.sybase/sb_content/1027266/XML_PB_DOM.pdf 翻译整理)
本文对PBDOM技术进行相关介绍,但并不涉及XML的基础知识,建议阅读者对下述相关术语有一定了解:Document(文档), DTD(文档类型定义), schema(大纲),Element(元素), attribute(属性), processing instruction(处理命令), entity(实体)。
本文主要包括以下内容:
1、为什么要使用PBDOM以及怎样创建PBDOM
2、PBDOM主要用于那些地方
3、如何使用PBDOM编程
4、PBDOM和其他XML解析(parser)技术的比较
一、什么是DOM
◆文档对象模型(Document Object Model)
1、作为一项W3C规范,XML DOM存在目的是为不同类型的应用程序提供一个标准的编程接口,它被设计可以跨平台、跨语言使用。
2、我们可以利用XML DOM创建XML文档并操纵其结构,增加、修改、删除元素。
3、程序中调用XML解析器载入XML文档到内存中。当文档被载入后,可以通过进入DOM检索和操作相关信息。
4、DOM 保存了XML文档树,文档(document)元素位于整棵树的最顶层。该元素可以有一到多个子节点来保存树的结构。
可以参阅以下网站:www.w3schools/dom/ 来了解更多的关于XML Document Object Model的内容。
二、什么时候应该使用DOM工具
◆当你需要做下列事情的时候,你应该想到XML DOM的
1、在一个或者多个XML文档之间移动元素
2、创建新的元素并且在XML文档的任意位置插入
3、操作元素并重新插入其到XML文档其他位置
4、导入内嵌数据结构
& . pb9中,数据窗口现在可以通过XML导出内嵌数据结构(nested data structures).
三、什么是PBDOM
◆PowerBuilder 文档结构模型(PowerBuilder Document Object Model)
1、PBDOM是通过PBNI扩展出来的,用于操作XML数据,并针对PowerScript作了优化
2、在程序中模型是通过DOM的抽象来表示XML数据。(A programming model to represent XML data –an abstraction of DOM)
3、底层是对Apache Xerces/C++的封装。
四、PBDOM的设计目标
1、简单易用(Be straightforward for PowerBuilder programmers)
2、可以利用PowerScript的强大语言能力(如对象、方法重载、数据等)
3、在可能的情况下,隐藏了XML底层的复杂实现(Hide the complexities of XML wherever possible)
4、原有的DOM在pb下使用不够直观(DOM is unintuitive to a PowerBuilder programmer)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论