求PB调用JAVA写的WebSerivce的接口返回二维数组处理问题

liuzyl 2010-05-26 11:06:41
web_service用的是xfire,java的后台,有一个函数是 xxxx( a1 as stirng..) as ArrayOfArrayOfString ,在java里面就是
string[][]的二维数组,列是固定的11列,行数可以自己在参数里面指定取多少行

我试过几种方法
string ls_test[100,10]

定义一个结构 ust_test,包括了11个string参数 a1到a11
ust_test ls_test[]


定义一个结构 ust_test2,包括了11个string数组参数 a1[]到a11[]
ust_test ls_test

然后调用

ls_test = webservice.xxxx(参数)

结果全是一样,运行错误
R00000错误
application terminated
Error: Unknow error,problem with SoapClient


求高手解决方案



...全文
240 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuzyl 2011-01-14
  • 打赏
  • 举报
回复
没有解决 无法使用java的数组
Yellho 2011-01-11
  • 打赏
  • 举报
回复
楼主此问题解决了吗?

如果解决了能把方法帖出来吗?
fang3307 2010-06-11
  • 打赏
  • 举报
回复
你看看pb11生成的代理所用到的类型
chengg0769 2010-06-10
  • 打赏
  • 举报
回复
那就无能为力了,搜搜看网上有没有成功的案例吧。
liuzyl 2010-05-27
  • 打赏
  • 举报
回复
string ls_errmsg
struct_b ls_name
integer i,j

for i = 1 to 10
for j = 1 to 12
ls_name.m1[i].m1[j] = ' '
next
next

try
ls_name = is_web.xxx(1, 100)
catch (SoapException e1)
ls_errmsg = "不能解析服务调用字符串!"
catch (PBXRuntimeError e2)
ls_errmsg ="调用服务出现运行错误!"
catch (RuntimeError e3)
ls_errmsg ="调用服务出现未知错误!"
end try

messagebox(ls_name.m1[1].m1[1] ,ls_name.m1[1].m1[2] + ls_errmsg)


我按照楼上的建了结构,赋了初值,但是还是不行,SoapException e1 错误,杯具
永生天地 2010-05-26
  • 打赏
  • 举报
回复
你不是要11列吗?
string ls_test[100,11]
new4everlau 2010-05-26
  • 打赏
  • 举报
回复
PB中数组下标默认是从1开始的
chengg0769 2010-05-26
  • 打赏
  • 举报
回复
java里没有多维数组。多维都是指向数组的指针吧。
pb中也是一样,虽然使用上可以用数组方式访问,不过都是访问的指针而已。

services返回的应该是有结构的一段数据。不晓得能不能赋值给一段byte[]数组,如果可以的话可以先返回一条数据然后通过debug界面查看并分析。

不晓得pb是怎么处理的。我自己感觉用结构的结构可行,比较接近java中的定义。具体调试吧。
struct_a: string m1[10]
struct_b: struct_a m1[100]




--------------------------------------------------------------------------------
最新设计了一款pbd混淆器
支持pkb2.5,pb5,6,7,8,9,10,10.5,11,11.5,12全系列,注:版本为pbvm.dll的版本
特点:
1.抹掉部分文字而阻止还原可读性
2.代码混淆与逻辑陷阱
3.对象作伪,函数做伪
4.支持常用版本

下载地址:csdn: http://chengg0769.download.csdn.net/
onlinedown: http://www.newhua.com/soft/15463.htm
liuzyl 2010-05-26
  • 打赏
  • 举报
回复
我看了一下java的二维数组,他好像是先到一维的地址,然后再是二维的值,是不是要用到指针了?
liuzyl 2010-05-26
  • 打赏
  • 举报
回复
string ls_name[10,11]

ls_name[] = is_web.xxxxx( 1, 10) //参数1是起始行,参数2是要获取的行数

messagebox(ls_name[1,1] ,ls_name[1,2] )


无论ls_name[]怎么定义都是错误

663

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧