小弟最近在做一个webservice和别人交互数据,对方给我提供了wsdl文件我按照wsdl文件部署了一个webservice然后问题来了客户端在调用我的webserivce的时候会请求我的wsdl文件我调用SOAP_DISCO_Server开放了一个返回wsdl文件的接口.这时客户端要求我按照文档样式返回我的wsdl文件.而getWSDL()方法返回的wsdl文件是rpc样式的以下是我的服务端代码<?php
require_once("AccountService.php");
require_once("SOAP/Server.php");
$account = new AccountService();
$server = new Soap_Server();
$server->addObjectMap($account, "urn:AccountService");
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST')
{
$server->service($GLOBALS['HTTP_RAW_POST_DATA']);
}
else
{
require_once 'SOAP/Disco.php';
$disco = new SOAP_DISCO_Server($server,'AccountService');
header("Content-type: text/xml");
if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl')==0)
{
echo $disco->getWSDL();
}
else
{
echo $disco->getDISCO();
}
}
exit;
?>有两个问题:
1. 这个样式是在哪里指定的,是在客户端请求时指定的还是在我服务器端生成wsdl文件的代码里指定的呢2. 如果是在服务器端指定,那么应该如何指定呢..小弟乃新近末学,此问题困扰我好几天了,遍寻PEAR在线文档仍未能解决,请有经验的朋友指点
require_once("AccountService.php");
require_once("SOAP/Server.php");
$account = new AccountService();
$server = new Soap_Server();
$server->addObjectMap($account, "urn:AccountService");
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST')
{
$server->service($GLOBALS['HTTP_RAW_POST_DATA']);
}
else
{
require_once 'SOAP/Disco.php';
$disco = new SOAP_DISCO_Server($server,'AccountService');
header("Content-type: text/xml");
if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl')==0)
{
echo $disco->getWSDL();
}
else
{
echo $disco->getDISCO();
}
}
exit;
?>有两个问题:
1. 这个样式是在哪里指定的,是在客户端请求时指定的还是在我服务器端生成wsdl文件的代码里指定的呢2. 如果是在服务器端指定,那么应该如何指定呢..小弟乃新近末学,此问题困扰我好几天了,遍寻PEAR在线文档仍未能解决,请有经验的朋友指点
解决方案 »
- 如何解析.net写的webservice返回的xml数据
- 请教高手一个关于CURL应用的问题
- 用PHP如何写一个任务进度条,如图所示
- 刚刚接触php,问个弱弱的小问题.
- mysql表多列排序,得到某个指定值的上一条或下一条,怎么做简单点
- 急!!!急!!!
- 在用PHP和javaScirp做一个(下拉列表)多选择的程序,如何让一个文本框得到下拉列表的值呢?
- 中文编码问题:需不需要将所有不能重复的字段设置成binary?
- 怎样才能将php转换成html?
- 求助 Call to undefined function
- 寻网站制作者,开发php+oracle,或JAVA+oracle的站点
- session_module_name() 有什么作用?
WSDL是写到服务器端的,是指定两服务器脚本不同函数,变量类型对应的表。
是先被定义到服务器端的,当客户端通过指定的sokect访问服务器时,服务器会对访问进行解释。
因此
1。由客户端访问并指定服务器上的WSDL文件。
2。不知道。。
建议使用NuSphere的SOAP连接会有较多帮助信息。