Comunidad de diseño web y desarrollo en internet online

PHP Cliente y Java WS

Citar            
MensajeEscrito el 03 Jun 2008 09:17 pm
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);

(IGNOREN LOS "\" AL POSTEARLO EL MISMO FORO ME HA AGREGADO ESO.)
sin embargo me al ejcutarlo me imprime esto :crap: :

Código :

Array ( [faultcode] => env:Server [faultstring] => Could not parse dateTime. [detail] => Array 
( [stacktrace] => weblogic.xml.schema.binding.DeserializationException: Year is not an int. at 
weblogic.xml.schema.binding.internal.builtin.XSDDateTimeDeserializer.setYear
(Ljava.util.Calendar;Ljava.util.StringTokenizer;)V(XSDDateTimeDeserializer.java:131) at 
weblogic.xml.schema.binding.internal.builtin.XSDDateTimeDeserializer.setDate
(Ljava.util.Calendar;Ljava.util.StringTokenizer;)V(XSDDateTimeDeserializer.java:108) at 
weblogic.xml.schema.binding.internal.builtin.XSDDateTimeDeserializer.setCalendarFields
(Ljava.util.Calendar;Ljava.lang.String;)V(XSDDateTimeDeserializer.java:82) at 
weblogic.xml.schema.binding.internal.builtin.XSDDateTimeDeserializer.getCalendar
(Ljava.lang.String;)Ljava.util.Calendar;(XSDDateTimeDeserializer.java:45) at 
weblogic.xml.schema.binding.internal.builtin.JavaDateDeserializer.getDate(Ljava.lang.String;)
Ljava.util.Date;(JavaDateDeserializer.java:22) at 
weblogic.xml.schema.binding.internal.builtin.JavaDateDeserializer.getObjectFromContent
(Ljava.lang.String;Lweblogic.xml.schema.binding.DeserializationContext;)Ljava.lang.Object;
(JavaDateDeserializer.java:13) at 
weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent
+(Lweblogic.xml.stream.CharacterData;Lweblogic.xml.schema.binding.DeserializationContext;)
Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:197) at 
weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent
(Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;)
Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:185) at 
weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.deserialize
(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.bindi
ng.DeserializationContext;)Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:125) at 
weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer
(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.bindi
ng.DeserializationContext;Lweblogic.xml.schema.binding.TypeMappingEntry;)Ljava.lang.Object;
(RuntimeUtils.java:339) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer
(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLName;Ljava.lang.Class;Lweblogic.xml.stre
am.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;)Ljava.lang.Object;
(Optimized Method) at weblogic.webservice.core.DefaultPart.toJava
(Ljavax.xml.soap.SOAPElement;Lweblogic.xml.schema.binding.DeserializationContext;Ljavax.xml.rpc.encoding.TypeMapping;)Ljava.lang.Object;(Optimized Method) at 
weblogic.webservice.core.DefaultMessage.toJava(Ljava.util.Map;Ljavax.xml.soap.SOAPMessage;)Ljava.lang.Object;(Optimized Method) at 
weblogic.webservice.core.handler.InvokeHandler.handleRequest(Ljavax.xml.rpc.handler.MessageContext;)Z(Optimized Method) at weblogic.webservice.core.HandlerChain.handleRequest(Ljavax.xml.rpc.handler.MessageContext;)V(HandlerChain.java:131) at weblogic.webservice.core.DefaultOperation.process(Lweblogic.webservice.WLMessageContext;)V(DefaultOperation.java:580) at 
weblogic.webservice.core.DefaultWebService.invoke(Lweblogic.webservice.Binding;Ljava.util.Map;)V(Optimized Method) at weblogic.webservice.server.servlet.ServletBase.serverSideInvoke
(Lweblogic.webservice.WebService;Lweblogic.webservice.Binding;Ljava.util.Map;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(ServletBase.java:419) at 
weblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke
(Lweblogic.webservice.WebService;Lweblogic.webservice.Binding;Ljava.util.Map;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(WebServiceServlet.java:277) at weblogic.webservice.server.servlet.ServletBase.doPost
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(ServletBase.java:403) at weblogic.webservice.server.servlet.WebServiceServlet.doPost
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(WebServiceServlet.java:245) at javax.servlet.http.HttpServlet.service
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(Optimized Method) at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:306) at 
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;(WebAppServletContext.java:5517) at weblogic.security.service.SecurityServiceManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method) at
 weblogic.servlet.internal.WebAppServletContext.invokeServlet
(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(Optimized Method) at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel.ExecuteThread;)V(ServletRequestImpl.java:2506) at 
weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(ExecuteThread.java:234) at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:210) at 
java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source) --------------- nested 
within: ------------------ weblogic.xml.schema.binding.DeserializationException: Could not parse dateTime. - with nested exception: [weblogic.xml.schema.binding.DeserializationException: Year is
 not an int.] at weblogic.xml.schema.binding.internal.builtin.XSDDateTimeDeserializer.getCalendar(Ljava.lang.String;)Ljava.util.Calendar;(XSDDateTimeDeserializer.java:51) at 
weblogic.xml.schema.binding.internal.builtin.JavaDateDeserializer.getDate(Ljava.lang.String;)Ljava.util.Date;(JavaDateDeserializer.java:22) at 
weblogic.xml.schema.binding.internal.builtin.JavaDateDeserializer.getObjectFromContent(Ljava.lang.String;Lweblogic.xml.schema.binding.DeserializationContext;)Ljava.lang.Object;(JavaDateDeserializer.java:13) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent
(Lweblogic.xml.stream.CharacterData;Lweblogic.xml.schema.binding.DeserializationContext;)
Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:197) at 
weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.processContent(Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;)
Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:185) at weblogic.xml.schema.binding.internal.builtin.XSDSimpleTypeDeserializer.deserialize(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;)Ljava.lang.Object;(XSDSimpleTypeDeserializer.java:125) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;Lweblogic.xml.schema.binding.TypeMappingEntry;)Ljava.lang.Object;(RuntimeUtils.java:339) at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer
(Lweblogic.xml.stream.XMLName;Lweblogic.xml.stream.XMLName;Ljava.lang.Class;Lweblogic.xml.stream.XMLInputStream;Lweblogic.xml.schema.binding.DeserializationContext;)Ljava.lang.Object;(Optimized Method) at weblogic.webservice.core.DefaultPart.toJava
(Ljavax.xml.soap.SOAPElement;Lweblogic.xml.schema.binding.DeserializationContext;Ljavax.xml.rpc.
encoding.TypeMapping;)Ljava.lang.Object;(Optimized Method) at weblogic.webservice.core.DefaultMessage.toJava(Ljava.util.Map;Ljavax.xml.soap.SOAPMessage;)Ljava.lang.Object;(Optimized Method) at weblogic.webservice.core.handler.InvokeHandler.handleRequest
(Ljavax.xml.rpc.handler.MessageContext;)Z(Optimized Method) at 
weblogic.webservice.core.HandlerChain.handleRequest(Ljavax.xml.rpc.handler.MessageContext;)V
(HandlerChain.java:131) at weblogic.webservice.core.DefaultOperation.process(Lweblogic.webservice.WLMessageContext;)V(DefaultOperation.java:580) at 
weblogic.webservice.core.DefaultWebService.invoke(Lweblogic.webservice.Binding;Ljava.util.Map;)V(Optimized Method) at weblogic.webservice.server.servlet.ServletBase.serverSideInvoke(Lweblogic.webservice.WebService;Lweblogic.webservice.Binding;Ljava.util.Map;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(ServletBase.java:419) at weblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke(Lweblogic.webservice.WebService;Lweblogic.webservice.Binding;Ljava.util.Map;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(WebServiceServlet.java:277) at weblogic.webservice.server.servlet.ServletBase.doPost
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(ServletBase.java:403) at weblogic.webservice.server.servlet.WebServiceServlet.doPost
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(WebServiceServlet.java:245) at javax.servlet.http.HttpServlet.service
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V
(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(Optimized Method) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:306) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;
(WebAppServletContext.java:5517) at weblogic.security.service.SecurityServiceManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.Authenticat
edSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Optimized Method) at 
weblogic.servlet.internal.WebAppServletContext.invokeServlet
(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(Optimized Method) at weblogic.servlet.internal.ServletRequestImpl.execute
(Lweblogic.kernel.ExecuteThread;)V(ServletRequestImpl.java:2506) at 
weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V
(ExecuteThread.java:234) at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:210) at 
java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source) ) ) 


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! :cry:

Por Omega

13 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 04 Jun 2008 12:28 am
Consejo:

has un simple hola mundo, que apenas lo contactes te devuelva el 'hola mundo', si todo camina bien, ahora le envias los tres String y esos mismos los devuelves, si aun te camina, yo creo que popdria ser el date que no te es compatible o alguna mierd...... por lo que podrias enviarslo como 3 Strings que concatenas dentro de tu Servicio SOAP.

Me cuentas si lo logras ;)
pd: por otra parte me gustaria saber como haces el SOAP

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 04 Jun 2008 09:25 pm
Lo que ocurre es q no tengo acceso a ese webservice ya q pertenece a una empresa agena a la mia, solo nos han proporcionado el user, pass y direccion wsdl. No me darian acceso mecho menos, ya q ese WS es usado por otras aplicaciones.

Ya intente enviado el date en todas formas, incluso probe poniedo al mismo tipo q java imprime, pero nada U_U.

Por Omega

13 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 04 Jun 2008 09:56 pm
Ellos tienen que darte un documento donde especifique el formato de la fecha. De lo contrario puedes preguntarles, ellos no son un robot son un humano y deben responder. :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 16 Jun 2009 09:35 am
Cosas que puedes hacer son:
1.-Por lo que leo ahora usas php4, mejor usa PHP5 en el cual soap ya viene integrado y la configuración es casi invisible
2.- manda a llamar las funciones de tu webservices, con __getFunctions
esto te dará la lista de funciones y los datos que necesitas y la forma en que necesitas enviarla.

Por retros

1 de clabLevel



 

firefox

 

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