CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

php如何调用java写的webservice?

楼主daguohuai()2006-03-14 12:42:53 在 Web 开发 / PHP 提问

接口参数是一个java写的类,php这边传什么过去?传php类还是数组?具体应该怎么写?  
   
  网上的例子都是很简单的,参数是string那种的,稍复杂的就没有了. 问题点数:100、回复次数:14Top

1 楼uuq(杜牧)回复于 2006-03-14 13:01:45 得分 0

前面不是有人问了吗,翻下旧贴啊  
  Top

2 楼eglic(圪圪) (理由永远是谎言,信仰永远是自慰)回复于 2006-03-14 13:03:10 得分 0

nusoap.phpTop

3 楼daguohuai()回复于 2006-03-14 13:05:47 得分 0

你们有没有看我的内容啊???  
   
  接口参数是一个java类啊,php怎么传啊??  
  Top

4 楼helloyou0(你好!)回复于 2006-03-14 13:18:26 得分 0

webservice传递的数据应该都是xml格式的,  
  看它具体是什么标准的,soap或者xml-rpc的,  
  都有特定格式Top

5 楼daguohuai()回复于 2006-03-14 13:56:29 得分 0

我不是关心数据是怎么传递的,我想知道调用的时候该怎么写?  
  因为soap就是把远程方法模拟成本地调用,就像调用本地函数一样,比如call里面有方法名,参数表等等,但是网上例子一般参数都是string的,什么"hello"之类的.如果参数是一个java类呢?  
   
  有实际工作中用过php调用java写的webservice的么?Top

6 楼uuq(杜牧)回复于 2006-03-15 13:04:56 得分 0

你好固执呀,网上有教程  
  前面的贴子也说了Top

7 楼kjeny2002(小杭)回复于 2006-03-15 14:42:06 得分 0

导入wsdl。。客户端用什么写都一样Top

8 楼xuzuning(唠叨)回复于 2006-03-15 15:23:25 得分 0

接口参数是一个java写的类???  
  就是连java也调用不成功的Top

9 楼yh801216(艾奥利斯)回复于 2006-03-15 17:07:09 得分 0

唠叨老大说得对:P  
   
  在webservice中有个"复合类型"的概念,  
  在webservice中数据类型分两种:  
  复合类型,基本类型  
   
  基本类型仅包括   string,int,float,datetime等标准类型  
   
  其余各个语言中的数据类型都要定义成符合webservice规范的复合类型  
   
  在webservice   服务器端程序中如果遇到这样的参数,那么它需要在wsdl定义中的开始定义复合类型:complex-type  
   
  当然,它可以传递   结构,对象等复杂类型,但是有一定限制,可以查查看。  
   
  在php调用接口时,只要按照复合类型定义中的方式去取得值就是了。。。  
   
   
  $results   =   $soap->call();  
   
  根据wsdl中的定义访问结果就是了。  
   
  比如结果中有2个参数,1个字符串,一个对象,用如下写法去获取结果:  
  $results['rt_string'];  
  $results['rt_obj']->a_attr;  
   
   
  呵呵,瞎说瞎说。随便看看:P  
  Top

10 楼yh801216(艾奥利斯)回复于 2006-03-15 17:13:47 得分 0

呵呵,从webservice的理念来看,其实楼主的这个问题不算问题的:P  
   
  比如:  
  java中的类,在php这样的东西怎么表示的?php中怎么定义类似这样的东东的?直接用php的方式访问之~就ok了。。。  
  hoho  
   
  就好像c中的结构,在php就是所谓的数组一个样子。。。  
   
  现在的语言高级到   和傻瓜相机差不多的地步了。。。Top

11 楼yh801216(艾奥利斯)回复于 2006-03-15 17:26:09 得分 0

呵呵,我写反了,原来楼主是说发起请求时的参数,不过差不多。  
   
  只要按照复合类型定义部分描述的就行。在php你一定能找到方式去定义地:P  
   
  不过像类中不支持方法等的注意事项楼主要看一看:P  
   
  传递的参数只要像上面一样的定义下$param   然后   $soap->call('servName',$param);Top

12 楼daguohuai()回复于 2006-03-17 16:52:59 得分 0

是的,如果类只是结构简单的,里面有几个string或int就可以直接用php里的class或数组就行了,不过这个类是java里面的dto类,也就是java各层之间传数据的类,也就是像.net里的DataSet吧,具体我也不太清楚,因为我对java不太熟悉,这样的类,好像无法在wsdl里用复合类型就能简单描述的。  
   
  这个接口参数,在java之间互相调用传递是没问题的,现在我问的就是用php-java的话怎么传递。Top

13 楼yh801216(艾奥利斯)回复于 2006-03-18 11:17:53 得分 0

好像dataset,datarow都不行。。  
  我也是看资料上这么说。  
   
  另外,楼主说的,java之间没问题,是通过webservice吧?  
   
  如果确认没有问题,那么php-java一样没有问题。  
   
  应用层上楼主不需要关心它怎么传递的,楼主查看wsdl看看那个复合类型如何定义的就是了。在webservice中无论是什么数据类型,对于它来说其实就是一个结构化的字符串,你只要能通过php模拟出同样的xml就没有问题了:PTop

14 楼yh801216(艾奥利斯)回复于 2006-03-18 11:19:31 得分 100

如果这样正向做比较困难,楼主可以改一下java接口,变成php传递简单参数过去,java返回那个复杂结果。  
   
  这样分析php得到的东西就知道该如何做了,照着这个结果写参数访问原来那个不就ok了?:PTop

相关问题

  • .net调用java写的webservice
  • php如何调用java类?
  • 急~~怎么调用java的webservice??
  • 怎样调用java写的WebService啊
  • java调用delphi的webservice问题?
  • VB调用WebService?
  • vc.net调用webservice
  • 请问c#写的webservice php可以调用吗
  • java的服务端,非java客户端怎么调用webService
  • WebService 调用出错!?

关键词

  • webservice
  • php
  • 接口
  • 数据
  • 结构
  • wsdl
  • soap
  • 调用
  • 参数
  • 类型

得分解答快速导航

  • 帖主:daguohuai
  • yh801216

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo