Comunidad de diseño web y desarrollo en internet online

Consulta sobre web service en PHP

Citar            
MensajeEscrito el 13 Jul 2011 02:50 pm
Buenas amigos, tengo una duda con respecto a los web service en PHP e creado un web service en PHP y funciona cuando lo consumo desde una aplicación en visual Basic pero cuando intento consumirla desde una aplicación en java esta me retorna siempre un valor "null" no genera ninguna excepción, e incluso para comprobar que realmente se pegaba al web service en una de las funciones creo un archivo de texto plano para verificar que la función fue llamada.

Que creen ustedes que podria estar generando este problema?

Este es el codigo de las funciones PHP:

Código PHP :

<?php

function enviarMensaje($numero,$mensaje,$fecha)
{
   
   $archivo=fopen("enviarMensaje.txt","w");
   fwrite($archivo,$numero.'-'.$mensaje.'-'.$fecha);
   fclose($archivo);

   return $numero.'-'.$mensaje.'-'.$fecha;
}

function recibirMensaje($id){

   $archivo=fopen("recibirMensaje.txt","w");
   fwrite($archivo,"resultado->".$id);
   fclose($archivo);

        return 'hola '.$id;
}

ini_set("soap.wsdl_cache_enabled", "0");

$server = new SoapServer("conexion.wsdl");
$server->addFunction('enviarMensaje');
$server->addFunction('recibirMensaje');
$server->handle();
?>



Agradezco su ayuda...

Por moy1989

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Jul 2011 03:12 pm
pues si funciona con visual basic entonces la respuesta q da php esta correcta el problema debe radicar en la programacion en java fijate que haya comunicacion con el servidor luego fijate q se peude enviar informacion, fijate como habres y cierras puertos en java o usas alguna libreria en especial?

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2011 03:28 pm

tuadmin escribió:

pues si funciona con visual basic entonces la respuesta q da php esta correcta el problema debe radicar en la programacion en java fijate que haya comunicacion con el servidor luego fijate q se peude enviar informacion, fijate como habres y cierras puertos en java o usas alguna libreria en especial?


Ahora entre en otro dilema logre que me conectara con Visual Basic editando el archivo wsdl y me funciona gracias a ese cambio pero ahora en JAVA no puedo ni siquiera agregar la referencia del web service.

Estoy al borde de la desesperación. :shock:

Por moy1989

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Jul 2011 07:49 pm
Aqui esta el wsdl a ver si alguien me dice si existe algun error.

Código XML :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions 
targetNamespace="http://server/" name="miServiceService"
xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:tns="http://server/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <types>
    <xsd:schema>
      <xsd:import namespace="http://server/" schemaLocation="MiServiceService_schema1.xsd"/>
    </xsd:schema>
  </types>
  <message name="enviarMensaje">
    <part name="parameters" element="tns:enviarMensaje"/>
  </message>
  <message name="enviarMensajeResponse">
    <part name="parameters" element="tns:enviarMensajeResponse"/>
  </message>
  <message name="recibirMensaje">
    <part name="parameters" element="tns:recibirMensaje"/>
  </message>
  <message name="recibirMensajeResponse">
    <part name="parameters" element="tns:recibirMensajeResponse"/>
  </message>
  <portType name="miService">
    <operation name="enviarMensaje">
      <input wsam:Action="http://server/miService/enviarMensajeRequest" message="tns:enviarMensaje"/>
      <output wsam:Action="http://server/miService/enviarMensajeResponse" message="tns:enviarMensajeResponse"/>
    </operation>
    <operation name="recibirMensaje">
      <input wsam:Action="http://server/miService/recibirMensajeRequest" message="tns:recibirMensaje"/>
      <output wsam:Action="http://server/miService/recibirMensajeResponse" message="tns:recibirMensajeResponse"/>
    </operation>
  </portType>
  <binding name="miServicePortBinding" type="tns:miService">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="enviarMensaje">
      <soap:operation soapAction="http://server/miService/enviarMensaje"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="recibirMensaje">
      <soap:operation soapAction="http://server/miService/recibirMensaje"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="miServiceService">
    <port name="miServicePort" binding="tns:miServicePortBinding">
      <soap:address location="http://localhost/tecmovil/conexion.php"/>
    </port>
  </service>
</definitions>



Aquí esta la definición del schema, MiServiceService_schema1.xsd

Código XML :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" 
targetNamespace="http://server/" xmlns:tns="http://server/" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="enviarMensaje" nillable="true" type="tns:enviarMensaje"/>

  <xs:element name="enviarMensajeResponse" nillable="true" type="tns:enviarMensajeResponse"/>

  <xs:element name="recibirMensaje" nillable="true" type="tns:recibirMensaje"/>

  <xs:element name="recibirMensajeResponse" nillable="true" type="tns:recibirMensajeResponse"/>

  <xs:complexType name="enviarMensaje">
    <xs:sequence>
      <xs:element name="fecha" type="xs:string" minOccurs="0"/>
      <xs:element name="mensaje" type="xs:string" minOccurs="0"/>
      <xs:element name="numero" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="enviarMensajeResponse">
    <xs:sequence>
      <xs:element name="return" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="recibirMensaje">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="recibirMensajeResponse">
    <xs:sequence>
      <xs:element name="return" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Por moy1989

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Jul 2011 03:21 am
tu archivo wsdl lo generaste vos? o modificaste de alguno que ya habia, lo malo del web service soap es que sus archivos a veces son muy confusos yo prefiero el xml-rpc o ahora json-rpc

bueno genera un wsdl limpio con este script

http://www.protung.ro/2009/08/php-wsdl-generator/

yo lo use para pruebas y pude intereactuar con sitios php simultaneamente bueno prueba y comenta como te va

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.