Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SOAP клиент и сервер 
V
    Опции темы
ecspertiza
Дата 21.5.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Значитсо так мне необходимо использовать SOAP, стало быть клиент выглядит так

Код

<?php  

  $client = new SoapClient("http://192.168.1.57/server.wsdl");

  if (is_object($client) == true)
    echo "true";
  else
    echo "false";

  try {  
    echo "<pre>\n";  
    print($client->getValues(1));  
    echo "\n</pre>\n";  
  } catch (SoapFault $exception) {  
    echo $exception;        
  } 
?>


сервер вот так 

Код

<?php  
class ValueService {  
    

  function getValues($symbol) 
  {  
     return $symbol; 
  }
}  

$server = new SoapServer("server.wsdl");  
$server->setClass("ValueService");  
$server->handle();  
?> 


сам wsdl 

Код

<?xml version='1.0' encoding='UTF-8'?>

<definitions name="server" targetNamespace="urn:server" xmlns:typens="urn:server" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:typens0="http://localhost/server.php">
    
    <message name='getValuesRequest'>
        <part name='symbol' type='xsd:string'/>
    </message>
    <message name='getValuesResponse'>
        <part name='Result' type='xsd:float'/>
    </message> 

    <portType name="newsPortType">
        <operation name="getValues">
                <input message='tns:getValuesRequest'/>
        <output message='tns:getValuesResponse'/>
        </operation>
    </portType>

    <binding name="newsBinding" type="typens:newsPortType">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="getValues">
            <soap:operation soapAction="urn:newsAction"/>

            <input>
                <soap:body namespace="urn:server" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </input>

            <output>
                <soap:body namespace="urn:server" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </output>

        </operation>
    </binding>

    <service name="newsService">
        <port name="newsPort" binding="typens:newsBinding">
            <soap:address location="http://localhost/server.php"/>
        </port>
    </service>

</definitions>


если всё это запускать на одной машине то всё работает ок, но если файл сервера и wsdl файл перенести на другую машину и стало быть в клиенте прописать другой IP, то клиент выдаёт следующую ошибку

Код

SoapFault exception: [Client] DTD are not supported by SOAP in /home/ecspertiza/site/client.php:12
Stack trace:
#0 [internal function]: SoapClient->__call('getValues', Array)
#1 /home/ecspertiza/site/client.php(12): SoapClient->getValues(1)
#2 {main}


из за чего это может быть? на обоих машинах http сервер поднят.

с PHP работаю недавно так что если что сильно ногами не бейтеsmile

Это сообщение отредактировал(а) ecspertiza - 21.5.2009, 13:53


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
vasac
Дата 21.5.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



<soap:address location="http://localhost/server.php"/>
это исправили?
PM WWW   Вверх
ecspertiza
Дата 21.5.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



а то в файле wsdl поставил IP того компа на котором он лежит и server.php

вот более полное описание ошибки

Код

SoapFault exception: [Client] DTD are not supported by SOAP in /home/ecspertiza/site/index.php:16
Stack trace:
#0 [internal function]: SoapClient->__call('getValues', Array)
#1 /home/ecspertiza/site/index.php(16): SoapClient->getValues(1)
#2 {main}Заголовок :
POST /server.php HTTP/1.1
Host: localhost
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.9
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:newsAction"
Content-Length: 488


Запрос :
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:server" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getValues><symbol xsi:type="xsd:string">1</symbol></ns1:getValues></SOAP-ENV:Body></SOAP-ENV:Envelope>

Заголовок:
HTTP/1.1 404 Not Found
Date: Thu, 21 May 2009 13:55:23 GMT
Server: Apache/2.2.10 (Linux/SUSE)
Vary: accept-language,accept-charset
Accept-Ranges: bytes
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Content-Language: en

Ответ:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Object not found!</title>
<link rev="made" href="mailto:[email protected]" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/ 
    body { color: #000000; background-color: #FFFFFF; }
    a:link { color: #0000CC; }
    p, address {margin-left: 3em;}
    span {font-size: smaller;}
/*]]>*/--></style>
</head>

<body>
<h1>Object not found!</h1>
<p>


    The requested URL was not found on this server.

  

    If you entered the URL manually please check your
    spelling and try again.

  

</p>
<p>
If you think this is a server error, please contact
the <a href="mailto:[email protected]">webmaster</a>.

</p>

<h2>Error 404</h2>
<address>
  <a href="/">localhost</a><br />
  
  <span>Thu May 21 17:55:23 2009<br />
  Apache/2.2.10 (Linux/SUSE)</span>
</address>
</body>
</html>


он походу всё на localhost отправляет или чёт я не пойму.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 22.5.2009, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Всем спасибо за внимание вопрос закрыт, просто wsdl файлы кэшировались в /tmp , поэтому запросы шли не туда.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.