Hi,
I don't manage to solve this problem :
org.xml.sax.SAXException: Deserializing parameter 'getInfoCustomerReturn':
could not find deserializer for type {urn:InfoCustomer}ICTR
at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:231)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:857)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:644)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:235)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:259)
at com.devoteam.orange.bean.ClientBean.getDetails(ClientBean.java:230)
at com.devoteam.orange.servlet.ClientControler.doGet(ClientControler.java:29)
at com.devoteam.orange.servlet.ClientControler.doPost(ClientControler.java:15)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:827)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:167)
at
com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:297)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:110)
at
com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:472)
at
com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:1012)
at
com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:913)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:523)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:282)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:112)
at com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:91)
at
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:184)
at
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:122)
at
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:315)
at
com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.java:60)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:323)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:252)
In fact, I must rebuild my SOAPEnvelope on my client, because I implement XML
Encryption for the SOAP messages and I want to use after decrypt the AXIS
deserializer ...
My code :
MessageContext msgContext = null;
� �AxisClient tmpEngine = new AxisClient(new NullProvider());
� �msgContext = new MessageContext(tmpEngine);
// � �msgContext = MessageContext.getCurrentContext();
� �TypeMappingRegistryImpl tmri = �new TypeMappingRegistryImpl();
// � �TypeMappingRegistry tmri = msgContext.getTypeMappingRegistry();
� �javax.xml.rpc.encoding.TypeMapping tm1 = tmri.createTypeMapping();
� �tm1.register( Customer.class, qname, new BeanSerializerFactory(
Customer.class, qname ), new BeanDeserializerFactory( Customer.class, qname ) );
� �tmri.register("urn:Customer",tm1);
� �msgContext.setTypeMappingRegistry(tmri);
� �SOAPEnvelope env = new SOAPEnvelope();
� �Message message = new Message(env);
� �msgContext.setResponseMessage(message);
� �StringWriter writer = new StringWriter();
� � � � �SerializationContext serializeContext = new
SerializationContextImpl(writer, null);
� � �respEnv.output(serializeContext);
� � � � writer.close();
� � � � �Reader reader = new StringReader(writer.getBuffer().toString());
� �InputSource is = new InputSource(reader);
� �DeserializationContextImpl dser = null;
� �dser = new DeserializationContextImpl(is, msgContext, Message.RESPONSE, env);
� �dser.parse();
� � �RPCElement respRPC = (RPCElement)env.getFirstBody();
� >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> �respRPC.getParams(); This code line trhows
exception ...
Thanks
________________________________________________________
Pascal RECCHIA
Tel: 01.41.49.41.50
Groupe DEVOTEAM - SITICOM
86, rue Anatole France
92300 LEVALLOIS PERRET
J Hodrien <[EMAIL PROTECTED]>
25/07/2002 15:49 GMT
Veuillez r�pondre � axis-user
Pour : [EMAIL PROTECTED]
cc :
ccc : Pascal Recchia/Devoteam
Objet : Finalizing web services
[IMAGE]
Is there a method that is guaranteed to be called on a web service as it is
culled?
With servlets I'm under the impression that you have init and destroy methods,
but I haven't found the equivalent with a web service.
Finalize can't be trusted to be called, so I wasn't quite sure where to place
code that is required to save state between server restarts.
It's hard to work around it since the service *has* to run with application
scope.
Thanks a lot,
jh
--
"It is always easier to fight for ones principles than to live up to them."
-- Alfred Adler
______________________________________________________________________
Devoteam Siticom Strategic Partner of the French Challenger in the 2003
America's Cup
ABOUT THE DEVOTEAM GROUP
Devoteam is a leading European Consulting Group in networks and e-business
infrastructures.
We help our clients build corporate results from innovative information
technology solutions.
In 2001, pro forma revenues (including Siticom Group) amounted to � 142 MM.
The new group has 1,800 employees in eight European countries (France, Belgium,
Denmark, Netherlands, UK, Spain, Austria).
Devoteam has been listed on the Nouveau March� of Euronext Paris since October
1999 (Euroclear 7379) and joined the NextEconomy segment of Euronext.