Em Quarta 30 Novembro 2005 20:29, o Gabsaga Tata escreveu: > I don't have a mapping of the XML string in my wsdl. I am passing the XML > string in a bean object and have a mapping of the bean object in the wsdl. > Is that a problem? Basically, I set the XML string in my bean object with > the set method, then pass the bean object to the web service, and then the > web service retrieves the XML string with the get method on the bean > object. Am I suppose to map the XML string in my wsdl for it to work > properly? Thanks. > Gabsaga
Looking at your exception, seemingly its an app problem converting the String back to base64 or something like that. It seemingly passes thru the wire fine. I'd do a String dump to a a file or log and compare the Strings you send and receive. If they match exactly I suspect its a programming error the the web service side in your logic. HTH, iksrazal > > >-----Original Message----- > >From: iksrazal [mailto:[EMAIL PROTECTED] > >Sent: Wednesday, November 30, 2005 03:06 PM > >To: [email protected] > >Subject: Re: Base 64 decoding in web service > > > >I do this quite a bit with Jboss 4.0.2 and their version of axis 1.2, > >converting a stateful sesion bean to a String to maintain state: > > > > private String getId(EJBObject session) throws ServiceLocatorException { > > String id = null; > > try { > > Handle handleSoapSession = session.getHandle(); > > ByteArrayOutputStream baos = new > >ByteArrayOutputStream(); > > ObjectOutputStream stream = new > >ObjectOutputStream(baos); > > stream.writeObject(handleSoapSession); > > stream.flush(); > > stream.close(); > > id = new String(Base64.encode(baos.toByteArray())); > > } catch(Exception ex) { > > throw new ServiceLocatorException(ex.getMessage()); > > } > > return id; > > } > > > >The id as a string is passed as a return value, mapped as a String in a > > wsdl complex object. So I know its possible. > > > >BTW, my base64 is from org/apache/commons/httpclient/Base64.java . > > > >HTH, > >iksrazal > > > >Em Quarta 30 Novembro 2005 18:07, o Gabsaga Tata escreveu: > >> I am using the package org.apache.soap.encoding.soapenc.Base64 to decode > >> base 64 encoded data. Below is my decode method in my webservice app. > >> public byte[] base64DecodeData(String data) > >> { > >> byte[] bytes = null; > >> > >> Base64 base64 = new Base64(); > >> try > >> { > >> bytes = base64.decode(data); > >> } > >> catch (Exception ex) > >> { > >> System.out.println("Decoding exception: " + ex.toString()); > >> } > >> return bytes; > >> } > >> > >> The string data parameter is the value extracted from element tag: > >> <data encoding="base64-MIME">Base64EncodedDataHere</data> > >> from a DOM Object where the value bas been base 64 encoded by the client > >> application. > >> > >> > >> I get the following error when running my base64DecodeData method. Any > >> ideas what could be causing this? When my webservice is implemented as a > >> regular java class, it works fine but when I convert it to a webservice, > >> I get this error. Any help will be greatly appreciated. > >> > >> > >> AxisFault > >> faultCode: > >> {http://schemas.xmlsoap.org/soap/envelope/}Server.userException > >> faultSubcode: > >> faultString: java.lang.reflect.InvocationTargetException > >> faultActor: > >> faultNode: > >> faultDetail: > >> {http://xml.apache.org/axis/}hostname:USAGXXTEST2286 > >> java.lang.reflect.InvocationTargetException > >> at > >> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.ja > >>va: 221) at > >> org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.jav > >>a:1 28) at > >> org.apache.axis.encoding.DeserializationContext.endElement(Deserializati > >>onC ontext.java:1087) at > >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) > >> at > >> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown > >> Source) at > >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis > >>pat cher.dispatch(Unknown Source) at > >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno > >>wn Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > >> Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown > >> Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > >> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > >> at javax.xml.parsers.SAXParser.parse(Unknown Source) > >> at > >> org.apache.axis.encoding.DeserializationContext.parse(DeserializationCon > >>tex t.java:227) at > >> org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at > >> org.apache.axis.Message.getSOAPEnvelope(Message.java:424) > >> at > >> org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstan > >>dCh ecker.java:62) at > >> org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) > >> at org.apache.axis.client.Call.invokeEngine(Call.java:2765) > >> at org.apache.axis.client.Call.invoke(Call.java:2748) > >> at org.apache.axis.client.Call.invoke(Call.java:2424) > >> at org.apache.axis.client.Call.invoke(Call.java:2347) > >> at org.apache.axis.client.Call.invoke(Call.java:1804) > >> at > >> com.simpaq.ws.CipherSoapBindingStub.processDocument(CipherSoapBindingStu > >>b.j ava:153) at CipherClient.run(CipherClient.java:78) > >> at CipherClient.main(CipherClient.java:105)
