博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次 PHP调用Java Webservice
阅读量:5097 次
发布时间:2019-06-13

本文共 2191 字,大约阅读时间需要 7 分钟。

前两天,第三方合作公司给我们一个Webservice的链接,说是Java做的,里面有个sendMsg()方法,让我们在用php做的项目里推送消息给他们。我们公司是有用.net做的Webservice,而Java的Webservice没用过。

他们提供的东西:

1. Java Webservice:http://不给看IP:9080/mccweb/webservice/common/wsMessageService?wsdl

2. Java Webservice里的方法:sendMsg(string username, string title, string content, string code)

 

php调用代码:

1 include('./NuSOAP/lib/nusoap.php'); 2  3 $client = new nusoap_client('http://不给看IP:9080/mccweb/webservice/common/wsMessageService?wsdl','wsdl'); 4 $err = $client->getError(); 5 if ($err) { 6     echo '

Constructor error

' . $err . '
'; 7 } 8 9 $param['username'] = 'andychen';10 $param['title'] = 'test push';11 $param['content'] = 'hello world!';12 $param['code'] = '@w#wed%d#dkesq#@!!324skfjsds!';13 14 $result = $client->call('sendMsg', array('parameters' => $param));15 echo $result;

 

运行结果:

我一看,尼玛“http://mccwebhost”这什么鬼?? 

浏览器打开“http://不给看IP:9080/mccweb/webservice/common/wsMessageService?wsdl”看看;

原来是这里出来的,那,这又是什么鬼??

我一想php是通过soap去调用Webservice的,且报错信息里有后面这个值,哦,了解了。“http://mccwebhost”这个是无效域名,被写死了。

沟通半天对方说改不了这是生成的,啊??生成的?鬼信。最后对方说他们用Nginx做了负载均衡,要了账号上服务器看了一下,我看到nginx.conf是这样的:

 

呵呵,好了是做了Nginx转发,做的不彻底,是这样的

改成这样:

1 upstream mccwebhost{ 2    ip_hash;   3    server  127.0.0.1:8082;   4 } 5  6 location /mccweb/ { 7     proxy_redirect    off; 8     proxy_set_header  Host $host:9080; 9     proxy_set_header  X-Real-IP $remote_addr;10     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;11     proxy_pass        http://mccwebhost;12 }

 

重启Nginx,再次浏览器打开“http://不给看IP:9080/mccweb/webservice/common/wsMessageService?wsdl”看看;

好了,可以了。再运行php代码,返回0。对方说是参数传递不成功。为什么????经过搜索得知,要这样:

1   include('./NuSOAP/lib/nusoap.php'); 2   3   $client = new nusoap_client('http://不给看IP:9080/mccweb/webservice/common/wsMessageService?wsdl','wsdl'); 4   $err = $client->getError(); 5   if ($err) { 6       echo '

Constructor error

' . $err . '
'; 7 } 8 9 $param['arg0'] = 'andychen';10 $param['arg1'] = 'test push';11 $param['arg2'] = 'hello world!';12 $param['arg3'] = '@w#wed%d#dkesq#@!!324skfjsds!';13 14 $result = $client->call('sendMsg', array('parameters' => $param));15 echo $result;

再次运行php代码,返回1。成功!为什么要这样传参呢,依据如图:

 

转载于:https://www.cnblogs.com/bootoo/p/4960467.html

你可能感兴趣的文章
如何跟开发就测试范围进行沟通?
查看>>
js模板引擎-art-template常用总结
查看>>
jQuery中的模拟操作
查看>>
红黑树的删除压力测试和完整性检查
查看>>
Ajax 分页
查看>>
关于GreenOdoo的一个Bug
查看>>
有网络信号,但输入密码却无法连接的解决方法
查看>>
自己写的DBHelper感慨颇深
查看>>
DeferredResult使用方式和场景
查看>>
WIN XP 添加删除WINDOWS组件时,指定的系统光盘路径
查看>>
email 正则
查看>>
GIS简单计算Helper类
查看>>
PHP 把返回的数据集转换成Tree树
查看>>
布隆过滤器
查看>>
Spring 3.x MVC 入门2 -- 通过示例初步感受spring mvc
查看>>
Unique Paths 解答
查看>>
密码技术发展几十年 我们真的安全了吗?
查看>>
workerman需要的php模块posix、pcntl、sysvshm、sysvmsg缺少,怎么办
查看>>
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle
查看>>
arc 093 D – Grid Components
查看>>