免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6123 | 回复: 2

php向java函数传递二维数组参数时遇到的问题 [复制链接]

论坛徽章:
0
发表于 2006-03-07 14:32 |显示全部楼层
<?php
$api = new Java("…….……");
for($i=0;$i<8;$i++)
{
        $arry[$i]=array_pad(array(),5,'a');
}
$ret = $api->list_svc($arry);
echo "return:".$ret."<br>";
echo "status:".$arry[0][4]."<br>";
?>

我的想法是向我的list_svc这个java函数传递一个二维的数组,然后在list_svc函数中会填充传进来的数组,同时返回一个return值。
现在我的返回值正确,可是数组似乎没有被填充,输出$arry[0][4]得到的结果还是预先定义的a字符,这是为什么?
难道传参数的时候要$api->list_svc(&$arry);?但还是没用!!
求各位帮忙告知一下,我错在哪里,该怎么做?

论坛徽章:
0
发表于 2006-03-08 15:19 |显示全部楼层
我知道这是由于php是通过传值来实现的,只有在定义方法的时候在方法的形参前加引用“&”,所以现在我修改了我java的api接口,让函数直接返回一个二维数组给php,现在问题又来了,页面有时显示正确有是不正确,错误提示一会是NullPointException一会是找不到我那个java的Class里的list_svc方法,我用命令行的方式直接执行,发现是java虚拟机有段错,以下是我的错误log,大家帮忙看看。

命令行时的错误提示:
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x081351a9, pid=6963, tid=3086932192
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_10-b03 mixed mode)
# Problematic frame:
# C  [php+0xed1a9]  zend_hash_index_find+0x11
#
# An error report file with more information is saved as hs_err_pid6963.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted

错误log:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x081351a9, pid=6963, tid=3086932192
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_10-b03 mixed mode)
# Problematic frame:
# C  [php+0xed1a9]  zend_hash_index_find+0x11
#

---------------  T H R E A D  ---------------

Current thread (0x0888503:  JavaThread "main" [_thread_in_native, id=6963]

siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x73692083

Registers:
EAX=0x73692073, EBX=0x00000004, ECX=0x00000004, EDX=0x00000004
ESP=0xbffd2878, EBP=0xbffd2878, ESI=0x088ff61c, EDI=0xbffd2e0c
EIP=0x081351a9, CR2=0x73692083, EFLAGS=0x00010202

Top of Stack: (sp=0xbffd287
0xbffd2878:   bffd28e8 0813c8be 088ff61c 00000004
0xbffd2888:   bffd28b4 bffd2e0c 081a67cc bffd2e24
0xbffd2898:   0888944c bffd28b8 00000005 08905714
0xbffd28a8:   081a67cc 00000000 bffd2900 08905678
0xbffd28b8:   08905340 080b2770 00000003 081a6950
0xbffd28c8:   bffd28e8 08128869 088ff61c 00000000
0xbffd28d8:   00000000 bffd2900 00000000 08889448
0xbffd28e8:   bffd3148 0813debb 0888946c bffd2900

Instructions: (pc=0x081351a9)
0x08135199:   89 e5 8b 45 08 8b 50 04 8b 4d 0c 21 ca 8b 40 1c
0x081351a9:   8b 04 90 85 c0 74 0b 39 08 74 10 8b 40 18 85 c0

Stack: [0xbfde4000,0xbffd6000),  sp=0xbffd2878,  free space=1978k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [php+0xed1a9]  zend_hash_index_find+0x11
C  [php+0xf48be]
C  [php+0xf5ebb]  execute+0x26b
C  [php+0xe9223]  zend_execute_scripts+0x6f
C  [php+0xc26d4]  php_execute_script+0x198
C  [php+0x101593]  main+0x927
C  [libc.so.6+0x14e23]  __libc_start_main+0xd3


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x088ef9b0 JavaThread "CompilerThread1" daemon [_thread_blocked, id=6963]
  0x088ee920 JavaThread "CompilerThread0" daemon [_thread_blocked, id=6963]
  0x088edad8 JavaThread "AdapterThread" daemon [_thread_blocked, id=6963]
  0x088eccd0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6963]
  0x088e93c0 JavaThread "Finalizer" daemon [_thread_blocked, id=6963]
  0x088e9030 JavaThread "Reference Handler" daemon [_thread_blocked, id=6963]
=>0x08885038 JavaThread "main" [_thread_in_native, id=6963]

Other Threads:
  0x088e85d8 VMThread [id=6963]
  0x088f11b0 WatcherThread [id=6963]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation   total 576K, used 342K [0xadd20000, 0xaddc0000, 0xae430000)
  eden space 512K,  66% used [0xadd20000, 0xadd75970, 0xadda0000)
  from space 64K,   0% used [0xadda0000, 0xadda0000, 0xaddb0000)
  to   space 64K,   0% used [0xaddb0000, 0xaddb0000, 0xaddc0000)
tenured generation   total 1408K, used 0K [0xae430000, 0xae590000, 0xb1d20000)
   the space 1408K,   0% used [0xae430000, 0xae430000, 0xae430200, 0xae590000)
compacting perm gen  total 16384K, used 1379K [0xb1d20000, 0xb2d20000, 0xb5d20000)
   the space 16384K,   8% used [0xb1d20000, 0xb1e78fb8, 0xb1e79000, 0xb2d20000)

Dynamic libraries:
00111000-00114000 r-xp 00000000 fd:00 114102     /usr/www/php/lib/php/extensions/no-debug-non-zts-20020429/java.so
00114000-00115000 rw-p 00002000 fd:00 114102     /usr/www/php/lib/php/extensions/no-debug-non-zts-20020429/java.so
00115000-00135000 r-xp 00000000 fd:00 362556     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libjava.so
00135000-00137000 rw-p 0001f000 fd:00 362556     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libjava.so
00137000-00138000 r--p 00137000 00:00 0
00139000-00148000 r-xp 00000000 fd:00 701121     /lib/libresolv-2.3.4.so
00148000-0014a000 rw-p 0000f000 fd:00 701121     /lib/libresolv-2.3.4.so
0014a000-0014c000 rw-p 0014a000 00:00 0
0014c000-00154000 r-xp 00000000 fd:00 362572     /usr/java/j2sdk1.4.2_10/jre/lib/i386/native_threads/libhpi.so
00154000-00155000 rw-p 00007000 fd:00 362572     /usr/java/j2sdk1.4.2_10/jre/lib/i386/native_threads/libhpi.so
00155000-00169000 r-xp 00000000 fd:00 362571     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libzip.so
00169000-0016c000 rw-p 00013000 fd:00 362571     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libzip.so
0016c000-0016e000 rwxp 0016c000 00:00 0
0016e000-001ec000 rwxp 0016e000 00:00 0
001ec000-001ed000 ---p 001ec000 00:00 0
001ed000-001fa000 rwxp 001ed000 00:00 0
001fa000-001fd000 ---p 001fa000 00:00 0
001fd000-0026d000 rwxp 001fd000 00:00 0
0026d000-0026e000 ---p 0026d000 00:00 0
0026e000-0027b000 rwxp 0026e000 00:00 0
0027b000-0027e000 ---p 0027b000 00:00 0
0027e000-002ee000 rwxp 0027e000 00:00 0
002ee000-002ef000 ---p 002ee000 00:00 0
002ef000-002fc000 rwxp 002ef000 00:00 0
002fc000-002ff000 ---p 002fc000 00:00 0
002ff000-0036f000 rwxp 002ff000 00:00 0
00371000-00372000 ---p 00371000 00:00 0
00372000-003f2000 rwxp 00372000 00:00 0
003f2000-0040e000 r-xp 00000000 fd:00 331763     /usr/lib/libexpat.so.0.5.0
0040e000-00410000 rw-p 0001c000 fd:00 331763     /usr/lib/libexpat.so.0.5.0
00438000-00439000 rwxp 00438000 00:00 0
00439000-0043b000 rwxp 00439000 00:00 0
0043b000-0043d000 rwxp 0043b000 00:00 0
0043d000-00458000 rwxp 0043d000 00:00 0
00458000-00460000 rwxp 00458000 00:00 0
00460000-00478000 rwxp 00460000 00:00 0
00478000-00479000 rwxp 00478000 00:00 0
0049b000-004fe000 r-xp 00000000 fd:00 681023     /usr/lib/libkrb5.so.3.2
004fe000-00500000 rw-p 00063000 fd:00 681023     /usr/lib/libkrb5.so.3.2
00502000-00522000 r-xp 00000000 fd:00 681022     /usr/lib/libk5crypto.so.3.0
00522000-00523000 rw-p 00020000 fd:00 681022     /usr/lib/libk5crypto.so.3.0
00525000-005f9000 r-xp 00000000 fd:00 701122     /lib/libcrypto.so.0.9.7a
005f9000-0060a000 rw-p 000d3000 fd:00 701122     /lib/libcrypto.so.0.9.7a
0060a000-0060e000 rw-p 0060a000 00:00 0
00610000-00623000 r-xp 00000000 fd:00 681024     /usr/lib/libgssapi_krb5.so.2.2
00623000-00624000 rw-p 00013000 fd:00 681024     /usr/lib/libgssapi_krb5.so.2.2
00626000-00657000 r-xp 00000000 fd:00 701123     /lib/libssl.so.0.9.7a
00657000-0065a000 rw-p 00031000 fd:00 701123     /lib/libssl.so.0.9.7a
00666000-00678000 r-xp 00000000 fd:00 163243     /lib/libnsl-2.3.4.so
00678000-0067a000 rw-p 00011000 fd:00 163243     /lib/libnsl-2.3.4.so
0067a000-0067c000 rw-p 0067a000 00:00 0
006a2000-006a3000 ---p 006a2000 00:00 0
006a3000-00723000 rwxp 006a3000 00:00 0
00736000-0073f000 r-xp 00000000 fd:00 341551     /lib/libnss_files-2.3.4.so
0073f000-00741000 rw-p 00008000 fd:00 341551     /lib/libnss_files-2.3.4.so
00741000-00742000 ---p 00741000 00:00 0
00742000-007c2000 rwxp 00742000 00:00 0
007c2000-007ce000 r-xp 00000000 fd:00 328052     /usr/lib/libsfount_api.so
007ce000-007cf000 rw-p 0000c000 fd:00 328052     /usr/lib/libsfount_api.so
007cf000-0082d000 rw-p 007cf000 00:00 0
00837000-00838000 rwxp 00837000 00:00 0
00838000-00854000 rwxp 00838000 00:00 0
008d5000-008da000 r-xp 00000000 fd:00 163246     /lib/libcrypt-2.3.4.so
008da000-008dc000 rw-p 00004000 fd:00 163246     /lib/libcrypt-2.3.4.so
008dc000-00903000 rw-p 008dc000 00:00 0
0090f000-00918000 rwxp 0090f000 00:00 0
00918000-00930000 rwxp 00918000 00:00 0
00971000-00986000 r-xp 00000000 fd:00 701117     /lib/ld-2.3.4.so
00986000-00987000 r--p 00015000 fd:00 701117     /lib/ld-2.3.4.so
00987000-00988000 rw-p 00016000 fd:00 701117     /lib/ld-2.3.4.so
0098a000-00aae000 r-xp 00000000 fd:00 226868     /lib/tls/libc-2.3.4.so
00aae000-00aaf000 r--p 00124000 fd:00 226868     /lib/tls/libc-2.3.4.so
00aaf000-00ab2000 rw-p 00125000 fd:00 226868     /lib/tls/libc-2.3.4.so
00ab2000-00ab4000 rw-p 00ab2000 00:00 0
00ab6000-00ad7000 r-xp 00000000 fd:00 226870     /lib/tls/libm-2.3.4.so
00ad7000-00ad9000 rw-p 00020000 fd:00 226870     /lib/tls/libm-2.3.4.so
00adb000-00add000 r-xp 00000000 fd:00 701118     /lib/libdl-2.3.4.so
00add000-00adf000 rw-p 00001000 fd:00 701118     /lib/libdl-2.3.4.so
00b35000-00b45000 r-xp 00000000 fd:00 362570     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libverify.so
00b45000-00b47000 rw-p 0000f000 fd:00 362570     /usr/java/j2sdk1.4.2_10/jre/lib/i386/libverify.so
00baa000-00bb9000 r-xp 00000000 fd:00 780912     /usr/lib/libz.so.1.2.1.2
00bb9000-00bba000 rw-p 0000e000 fd:00 780912     /usr/lib/libz.so.1.2.1.2
00bcc000-00bda000 r-xp 00000000 fd:00 226869     /lib/tls/libpthread-2.3.4.so
00bda000-00bdc000 rw-p 0000d000 fd:00 226869     /lib/tls/libpthread-2.3.4.so
00bdc000-00bde000 rw-p 00bdc000 00:00 0
00bde000-00bdf000 ---p 00bde000 00:00 0
00bdf000-00bec000 rwxp 00bdf000 00:00 0
00bec000-00bef000 ---p 00bec000 00:00 0
00bef000-00ddf000 rwxp 00bef000 00:00 0
00df8000-00dfa000 r-xp 00000000 fd:00 701120     /lib/libcom_err.so.2.1
00dfa000-00dfb000 rw-p 00001000 fd:00 701120     /lib/libcom_err.so.2.1
00e02000-00e1c000 r-xp 00000000 fd:00 717826     /usr/lib/libpq.so.4.1
00e1c000-00e1d000 rw-p 0001a000 fd:00 717826     /usr/lib/libpq.so.4.1
00e1d000-013e4000 r-xp 00000000 fd:00 362575     /usr/java/j2sdk1.4.2_10/jre/lib/i386/server/libjvm.so
013e4000-0143e000 rw-p 005c6000 fd:00 362575     /usr/java/j2sdk1.4.2_10/jre/lib/i386/server/libjvm.so
0143e000-01453000 rw-p 0143e000 00:00 0
01453000-01454000 ---p 01453000 00:00 0
01454000-01461000 rwxp 01454000 00:00 0
01461000-01464000 ---p 01461000 00:00 0
01464000-01654000 rwxp 01464000 00:00 0
032e0000-032e1000 ---p 032e0000 00:00 0
032e1000-032ee000 rwxp 032e1000 00:00 0
032ee000-032f1000 ---p 032ee000 00:00 0
032f1000-034e1000 rwxp 032f1000 00:00 0
03716000-0375e000 rwxp 03716000 00:00 0
0375e000-05716000 rwxp 0375e000 00:00 0
08048000-0817d000 r-xp 00000000 fd:00 146224     /usr/www/php/bin/php
0817d000-081a0000 rw-p 00134000 fd:00 146224     /usr/www/php/bin/php
081a0000-081a7000 rw-p 081a0000 00:00 0
08847000-0892b000 rw-p 08847000 00:00 0
ad738000-ad739000 rw-p ad738000 00:00 0
ad739000-adc14000 r--s 00000000 fd:00 197041     /usr/java/j2sdk1.4.2_10/lib/tools.jar
adc14000-adc36000 r--s 00000000 fd:00 197025     /usr/java/j2sdk1.4.2_10/lib/dt.jar
adc36000-adc38000 r--s 00000000 fd:00 178958     /usr/www/php/lib/php/php_java.jar
adc38000-adc3b000 r--s 00000000 fd:00 113767     /usr/java/j2sdk1.4.2_10/jre/lib/ext/dnsns.jar
adc3b000-adc57000 r--s 00000000 fd:00 113770     /usr/java/j2sdk1.4.2_10/jre/lib/ext/sunjce_provider.jar
adc57000-adc64000 r--s 00000000 fd:00 113768     /usr/java/j2sdk1.4.2_10/jre/lib/ext/ldapsec.jar
adc64000-add20000 r--s 00000000 fd:00 113841     /usr/java/j2sdk1.4.2_10/jre/lib/ext/localedata.jar
add20000-addc0000 rwxp add20000 00:00 0
addc0000-ae430000 rwxp addc0000 00:00 0
ae430000-ae590000 rwxp ae430000 00:00 0
ae590000-b1d20000 rwxp ae590000 00:00 0
b1d20000-b2d20000 rwxp b1d20000 00:00 0
b2d20000-b5d20000 rwxp b2d20000 00:00 0
b5d27000-b5d4f000 rw-p b5d27000 00:00 0
b5d4f000-b62f1000 r--s 00000000 fd:00 48983      /usr/java/j2sdk1.4.2_10/jre/lib/charsets.jar
b62f1000-b6303000 r--s 00000000 fd:00 48981      /usr/java/j2sdk1.4.2_10/jre/lib/jce.jar
b6303000-b63e0000 r--s 00000000 fd:00 48992      /usr/java/j2sdk1.4.2_10/jre/lib/jsse.jar
b63e0000-b63f6000 r--s 00000000 fd:00 48993      /usr/java/j2sdk1.4.2_10/jre/lib/sunrsasign.jar
b63f6000-b6440000 rw-p b63f6000 00:00 0
b6440000-b7de9000 r--s 00000000 fd:00 49087      /usr/java/j2sdk1.4.2_10/jre/lib/rt.jar
b7de9000-b7ded000 rw-s 00000000 fd:00 178916     /tmp/hsperfdata_root/6963
b7ded000-b7fed000 r--p 00000000 fd:00 327165     /usr/lib/locale/locale-archive
b7fed000-b7ff1000 rw-p b7fed000 00:00 0
bfdda000-bfde4000 rwxp bfdda000 00:00 0
bfde4000-bfde7000 ---p bfde4000 00:00 0
bffcd000-bffd6000 rwxp bffcd000 00:00 0
bffd6000-c0000000 rw-p bffd6000 00:00 0
ffffe000-fffff000 ---p 00000000 00:00 0

VM Arguments:
jvm_args: -Djava.home=/usr/java/j2sdk1.4.2_10 -Djava.library.path=/usr/www/php/lib/php/extensions/no-debug-non-zts-20020429
java_command: <unknown>
Launcher Type: generic

Environment Variables:
JAVA_HOME=/usr/java/j2sdk1.4.2_10
CLASSPATH=.:/usr/java/j2sdk1.4.2_10/lib/dt.jar:/usr/java/j2sdk1.4.2_10/lib/tools.jar
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/java/j2sd
k1.4.2_10/bin:/root/bin
LD_LIBRARY_PATH=/usr/java/j2sdk1.4.2_10/jre/lib/i386:/usr/java/j2sdk1.4.2_10/jre/lib/i386/server
SHELL=/bin/bash


---------------  S Y S T E M  ---------------

OS:CentOS release 4.2 (Final)

uname:Linux 2.6.9-22.EL #1 Sat Oct 8 17:48:27 CDT 2005 i686
libc:glibc 2.3.4 NPTL 2.3.4
rlimit: STACK 10240k, CORE 0k, NPROC 2560, NOFILE 1024, AS infinity
load average:54429105212843180688962200742632619628407009651367013291195830758832076373765571495483396535234444773507654185162508136
226399184498571625707388446494432393833362409520065351606062502121974760626194150270567624382700091445442400172200003895296.00 0.00
213777324321362932388515670614770486950262233590904782599941269854862259303029809186667059813528386111355893624417461124670466227647
099995634713064228440814649344.00

CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2

Memory: 4k page, physical 158652k(34816k free), swap 327672k(318436k free)

vm_info: Java HotSpot(TM) Server VM (1.4.2_10-b03) for linux-x86, built on Oct 10 2005 14:58:47 by unknown with unknown compiler

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
发表于 2006-03-08 15:30 |显示全部楼层
建议你这么做:
两边确定一个编码的方式,然后把传递的数据编码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP