Foros del Web » Programando para Internet » PHP »

Cliente PHP con Java WB

Estas en el tema de Cliente PHP con Java WB en el foro de PHP en Foros del Web. Holas, toy tratando de hacer un cliente SOAP en php q se comunique con un Webservices hecho en Java. Aca el codigo : require_once('nuSOAP/nusoap.php'); $wsdl="direccion ...
  #1 (permalink)  
Antiguo 03/06/2008, 15:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Exclamación Cliente PHP con Java WB

Holas, toy tratando de hacer un cliente SOAP en php q se comunique con un Webservices hecho en Java. Aca el codigo :


require_once('nuSOAP/nusoap.php');
$wsdl="direccion wsdl";
$client=new soapclient($wsdl, 'wsdl');

$param=array(
"user",
'password',
'Hola esto es un prueba WS de php! telefono\',
'Thu, 05 May 2008 14:50:52+07:00\' ,
0
);

$result = $client->call('nombre de funcion', $param);
print_r($result);

sin embargo me al ejcutarlo me imprime esto :

Array ( [faultcode] => env:Server [faultstring] => Could not parse dateTime. [detail] => Array ( [stacktrace] => weblogic.xml.schema.binding.DeserializationExcepti on: Year is not an int. at weblogic.xml.schema.binding.internal.builtin.XSDDa teTimeDeserializer.setYear(Ljava.util.Calendar;Lja va.util.StringTokenizer;)V(XSDDateTimeDeserializer .java:131) at weblogic.xml.schema.binding.internal.builtin.XSDDa teTimeDeserializer.setDate(Ljava.util.Calendar;Lja va.util.StringTokenizer;)V(XSDDateTimeDeserializer .java:108) at weblogic.xml.schema.binding.internal.builtin.XSDDa teTimeDeserializer.setCalendarFields(Ljava.util.Ca lendar;Ljava.lang.String;)V(XSDDateTimeDeserialize r.java:82) at weblogic.xml.schema.binding.internal.builtin.XSDDa teTimeDeserializer.getCalendar(Ljava.lang.String;) Ljava.util.Calendar;(XSDDateTimeDeserializer.java: 45) at weblogic.xml.schema.binding.internal.builtin.JavaD ateDeserializer.getDate(Ljava.lang.String;)Ljava.u til.Date;(JavaDateDeserializer.java:22) at weblogic.xml.schema.binding.internal.builtin.JavaD ateDeserializer.getObjectFromContent(Ljava.lang.St ring;Lweblogic.xml.schema.binding.DeserializationC ontext;)Ljava.lang.Object;(JavaDateDeserializer.ja va:13) at weblogic.xml.schema.binding.internal.builtin.XSDSi mpleTypeDeserializer.processContent+(Lweblogic.xml .stream.CharacterData;Lweblogic.xml.schema.binding .DeserializationContext;)Ljava.lang.Object;(XSDSim pleTypeDeserializer.java:197) at weblogic.xml.schema.binding.internal.builtin.XSDSi mpleTypeDeserializer.processContent(Lweblogic.xml. stream.XMLInputStream;Lweblogic.xml.schema.binding .DeserializationContext;)Ljava.lang.Object;(XSDSim pleTypeDeserializer.java:185) at weblogic.xml.schema.binding.internal.builtin.XSDSi mpleTypeDeserializer.deserialize(Lweblogic.xml.str eam.XMLName;Lweblogic.xml.stream.XMLInputStream;Lw eblogic.xml.schema.binding.DeserializationContext; )Ljava.lang.Object;(XSDSimpleTypeDeserializer.java :125) at weblogic.xml.schema.binding.RuntimeUtils.invoke_de serializer(Lweblogic.xml.stream.XMLName;Lweblogic. xml.stream.XMLInputStream;Lweblogic.xml.schema.bin ding.DeserializationContext;Lweblogic.xml.schema.b inding.TypeMappingEntry;)Ljava.lang.Object;(Runtim eUtils.java:339) at weblogic.xml.schema.binding.RuntimeUtils.invoke_de serializer(Lweblogic.xml.stream.XMLName;Lweblogic. xml.stream.XMLName;Ljava.lang.Class;Lweblogic.xml. stream.XMLInputStream;Lweblogic.xml.schema.binding .DeserializationContext;)Ljava.lang.Object;(Optimi zed Method) at weblogic.webservice.core.DefaultPart.toJava(Ljavax .xml.soap.SOAPElement;Lweblogic.xml.schema.binding .DeserializationContext;Ljavax.xml.rpc.encoding.Ty peMapping;)Ljava.lang.Object;(Optimized Method) at weblogic.webservice.core.DefaultMessage.toJava(Lja va.util.Map;Ljavax.xml.soap.SOAPMessage;)Ljava.lan g.Object;(Optimized Method) at weblogic.webservice.core.handler.InvokeHandler.han dleRequest(Ljavax.xml.rpc.handler.MessageContext;) Z(Optimized Method) at weblogic.webservice.core.HandlerChain.handleReques t(Ljavax.xml.rpc.handler.MessageContext;)V(Handler Chain.java:131) at weblogic.webservice.core.DefaultOperation.process( Lweblogic.webservice.WLMessageContext;)V(DefaultOp eration.java:580) at weblogic.webservice.core.DefaultWebService.invoke( Lweblogic.webservice.Binding;Ljava.util.Map;)V(Opt imized Method) at weblogic.webservice.server.servlet.ServletBase.ser verSideInvoke(Lweblogic.webservice.WebService;Lweb logic.webservice.Binding;Ljava.util.Map;Ljavax.ser vlet.http.HttpServletRequest;Ljavax.servlet.http.H ttpServletResponse;)V(ServletBase.java:419) at weblogic.webservice.server.servlet.WebServiceServl et.serverSideInvoke(Lweblogic.webservice.WebServic e;Lweblogic.webservice.Binding;Ljava.util.Map;Ljav ax.servlet.http.HttpServletRequest;Ljavax.servlet. http.HttpServletResponse;)V(WebServiceServlet.java :277) at weblogic.webservice.server.servlet.ServletBase.doP ost(Ljavax.servlet.http.HttpServletRequest;Ljavax. servlet.http.HttpServletResponse;)V(ServletBase.ja va:403) at weblogic.webservice.server.servlet.WebServiceServl et.doPost(Ljavax.servlet.http.HttpServletRequest;L javax.servlet.http.HttpServletResponse;)V(WebServi ceServlet.java:245) at javax.servlet.http.HttpServlet.service(Ljavax.serv let.http.HttpServletRequest;Ljavax.servlet.http.Ht tpServletResponse;)V(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(Ljavax.serv let.ServletRequest;Ljavax.servlet.ServletResponse; )V(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(Ljavax.servlet.ServletRequest;Ljavax.servlet .ServletResponse;Lweblogic.servlet.internal.Filter ChainImpl;)V(Optimized Method) at weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(Ljavax.servlet.ServletRequest;Ljavax.servlet .ServletResponse;)V(ServletStubImpl.java:306) at weblogic.servlet.internal.WebAppServletContext$Ser vletInvocationAction.run()Ljava.lang.Object;(WebAp pServletContext.java:5517) at weblogic.security.service.SecurityServiceManager.r unAs(Lweblogic.security.acl.internal.Authenticated Subject;Lweblogic.security.acl.internal.Authentica tedSubject;Ljava.security.PrivilegedAction;)Ljava. lang.Object;(Optimized Method) at weblogic.servlet.internal.WebAppServletContext.inv okeServlet(Lweblogic.servlet.internal.ServletReque stImpl;Lweblogic.servlet.internal.ServletResponseI mpl;)V(Optimized Method) at weblogic.servlet.internal.ServletRequestImpl.execu te(Lweblogic.kernel.ExecuteThread;)V(ServletReques tImpl.java:2506) at weblogic.kernel.ExecuteThread.execute(Lweblogic.ke rnel.ExecuteRequest;)V(ExecuteThread.java:234) at weblogic.kernel.ExecuteThread.run()V(ExecuteThread .java:210) at java.lang.Thread.startThreadFromVM(Ljava.lang.Thre ad;)V(Unknown Source) --------------- nested within: ------------------ weblogic.xml.schema.binding.DeserializationExcepti on: Could not parse dateTime. - with nested exception: [weblogic.xml.schema.binding.DeserializationExcepti on: Year is not an int.] at weblogic.xml.schema.binding.internal.builtin.XSDDa teTimeDeserializer.getCalendar(Ljava.lang.String;) Ljava.util.Calendar;(XSDDateTimeDeserializer.java: 51) at weblogic.xml.schema.binding.internal.builtin.JavaD ateDeserializer.getDate(Ljava.lang.String;)Ljava.u til.Date;(JavaDateDeserializer.java:22) at weblogic.xml.schema.binding.internal.builtin.JavaD ateDeserializer.getObjectFromContent(Ljava.lang.St ring;Lweblogic.xml.schema.binding.DeserializationC ontext;)Ljava.lang.Object;(JavaDateDeserializer.ja va:13) at weblogic.xml.schema.binding.internal.builtin.XSDSi mpleTypeDeserializer.processContent(Lweblogic.xml. stream.CharacterData;Lweblogic.xml.schema.binding. DeserializationContext;)Ljava.lang.Object;(XSDSimp leTypeDeserializer.java:197) at weblogic.xml.schema.binding.internal.builtin.XSDSi mpleTypeDeserializer.processContent ...Amén

Hasta donde puedo entender no me puede parsear el formato a Date time (antes estaba con el clasico formato dd/mm/yyyy o similares pero tampoco los reconoce), pero creoq no solo es eso. No tenog acceso al codigo del webservices en java, mas la funcion recibe 3 strings, un date y un byte (en ese orden). Como puedo hacer?, q tengo q cambiar en mi codigo?

Ayuda!
__________________
Veo de todo un poco, pero siempre tengo mis favoritos xD. No subestimen a Flash!
  #2 (permalink)  
Antiguo 03/06/2008, 16:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cliente PHP con Java WB

Deberías de consultar donde obtuviste el archivo java que te indiquen en que formato debes de enviar el datetime, solo así lo podras entonces adaptar en PHP.

Saludos.
  #3 (permalink)  
Antiguo 03/06/2008, 17:09
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Respuesta: Cliente PHP con Java WB

como es un wsdl al entrar ala direccion pude ver los parametors q recibe esa funcion, lamentablemente no me dan mas informacion y mucho menos el archivo java, no podria meter mano en el porq tiene otras funciones usadas por otras aplicaciones (y si meto la pata mi jefe me mata) ademas de pertener a una empresa privada ajena a la mia, cuando yo entre alli ya estabana trabjando de ese modo, creoq es un web services q esa empresa le ofrecio a la compañia en dodne trabajo, pero note dan mas datos q la direccion del wsdl, user y pass. TT_TT
__________________
Veo de todo un poco, pero siempre tengo mis favoritos xD. No subestimen a Flash!
  #4 (permalink)  
Antiguo 03/06/2008, 19:37
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Cliente PHP con Java WB

¿El WSDL esta en línea como para poderlo ver?... si dices que es de una empresa, lo dudo, pero no esta demás preguntar.

Prueba imprimiendo los valores de $client->request y $client->response para una mejor información a esa barbaridad .



PD: Poco importa en qué lenguaje este hecho el WS. Verifica que el WSDL se despliegue correctamente y busca sino esta documentado (usualmente al WSDL le acompaña una página describiendo el servicio).
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:21.