• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با zend soap و php soap
#1
سلام
کلا نمیشه از این soap server جواب گرفت. هر حالتی نوشتم موقع فراخوانی با soap client چه با زند و چه با SoapClient خطای زیر رو میده:
کد پی‌اچ‌پی:
Fatal errorUncaught SoapFault exception: [VersionMismatchWrong Version 
اساسی درگیرشم و باید تا فردا تحویل بدم.
بنظرتون مشکل از کجاست

کد سمت سرور:
کد پی‌اچ‌پی:
class Developers_ApiController extends Zend_Controller_Action {
    public 
$parameters;
    public 
$config;
    public 
$session;
    public 
$errors = array();
    
//change this to your WSDL URI!
    
private $_WSDL_URI;

    public function 
init() {

        
$this -> config Zend_Registry::get('config');
        
$this -> session Zend_Registry::get('session');
        
$autoloader = new Zend_Application_Module_Autoloader( array('namespace' => 'Default''basePath' => dirname(dirname(__FILE__))));
        
$this -> _WSDL_URI SITE_PATH 'developers/api/soap';
        
$this->parameters $this->_getAllParams();
        
$this->getHelper('viewRenderer')->setNoRender(true);

    }

    public function 
soapAction() {
        
header ("content-type: text/xml");
        
$autodiscover = new Zend_Soap_AutoDiscover();
        
$autodiscover->setUri(  sprintf($this->_WSDL_URI,0) );
        
$autodiscover->setClass('NAG_api' );

        
$autodiscover->handle();

        exit;
        }

        public function 
restAction() {

        
$server = new Zend_Rest_Server();
        
$server -> setClass('NAG_api');
        
$server -> handle();
        exit ;
    }


کد سمت کلاینت (تست):
کد پی‌اچ‌پی:
ini_set('soap.wsdl_cache_enabled''0');
        
ini_set('soap.wsdl_cache_ttl''0'); 
        
        
$soap_conf = array( 
        
"trace"    => 1,
        
'location' => 'http://example/developers/api/soap?wsdl',
        
'uri' => 'http://example/developers/api/soap',
        
"exceptions" => 1,
        
"soap_version"   => SOAP_1_2,
        
'encoding' => 'UTF-8'
           
);
        
$client = new SoapClient(null,$soap_conf);
        
$params = array(
        
'username'=>'demo',
        
'password'=>'demo',
        
'to'=>'09123456789',
        
'from'=>'',
        
'message'=>'testتست',
        
'schedule' => FALSE
        
);
        echo 
$client->__soapCall('SendMessage',$params); 

کلا نمی دونم جریان چیه! نمی دونم مشکل از ورژن soap سروره یا نه
ممکنه مثلا تو سرور ورژن 1.1 باشه و این زند از 1.2 استفاده کنه؟
  پاسخ
تشکر شده توسط :
#2
منتظرم Huh
  پاسخ
تشکر شده توسط :
#3
یک سری تغییرات دادم حالا متوجه شدم اشکال از برنامه خودمه ممکنه یه تداخلی باشه که خطا بصورت زیر هست:
( ! ) Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://example/developers/api/soap?wsdl' : Extra content at the end of the document in F:\www\example\core\library\Zend\Soap\Client\Common.php on line 51
  پاسخ
تشکر شده توسط :
#4
http://www.ibm.com/developerworks/openso...index.html
  پاسخ
تشکر شده توسط :
#5
یه مشکلی ممکنه تو برنامم باشه . آخه بیرون برنامه کد رو تست می زنم کار می کنه. به نظرت چه چیزایی ممکنه تداخل بوجود بیارن

ضمنا مشکل پیاده سازی نیست . من می خوام بدونم چرا این خطا رو میده:
Extra content at the end of the document

خواهشا کمکم کنید از صبح درگیرشم. حالا دیگه مغزم تو لوپ افتاده
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۱ شهریور ۲۲, ۰۶:۳۶ ب.ظ)nasserghiasi نوشته: یه مشکلی ممکنه تو برنامم باشه . آخه بیرون برنامه کد رو تست می زنم کار می کنه. به نظرت چه چیزایی ممکنه تداخل بوجود بیارن

ضمنا مشکل پیاده سازی نیست . من می خوام بدونم چرا این خطا رو میده:
Extra content at the end of the document

خواهشا کمکم کنید از صبح درگیرشم. حالا دیگه مغزم تو لوپ افتاده

شاید اخطار php چیزی میده که خروجی XML رو خراب می کنه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان