Hi all,
I'm trying to achieve a simple file transfert from a server to a client.
Here is some xFire service code and exception details:
Environment :
xFire 1.2.6
Java 1.5.0_10
Tomcat 5.5
Service Implementation code:
public class DiffusionFichiersServiceImpl implements DiffusionFichiersService{
public DiffusionFichiersServiceImpl() {
}
public FileDataSource tranfertFile(){
FileDataSource m_fds = null;
try {
m_fds = new FileDataSource("c:\\\\ldap.txt");
} catch (Throwable tr){
System.out.println(tr.getMessage());
}
return m_fds;
}
}
Here is a part of the soap message displayed into the Eclipse Web Service
Explorer tool when I call the "tranfertFile" method:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<ns1:tranfertFileResponse
xmlns:ns1="http://wsDiffusionFichiers.cssmi.qc.ca">
<ns1:out>
<contentType
xmlns="http://activation.javax">text/plain</contentType>
<file xmlns="http://activation.javax">
<absolute xmlns="http://io.java">true</absolute>
<absoluteFile xmlns="http://io.java">
<absolute>true</absolute>
<absoluteFile>
<absolute>true</absolute>
<absoluteFile>
<absolute>true</absolute>
<absoluteFile>
<absolute>true</absolute>
<absoluteFile>
... (until the exception shown in
tomcat console)
Here is the exception retrieved from the tomcat output console:
java.lang.StackOverflowError
at
com.ctc.wstx.sw.BufferingXmlWriter.fastWriteRaw(BufferingXmlWriter.java:1080)
at
com.ctc.wstx.sw.BufferingXmlWriter.writeStartTagEnd(BufferingXmlWriter.java:713)
at
com.ctc.wstx.sw.BaseNsStreamWriter.closeStartElement(BaseNsStreamWriter.java:387)
at
com.ctc.wstx.sw.BaseNsStreamWriter.checkStartElement(BaseNsStreamWriter.java:436)
at
com.ctc.wstx.sw.SimpleNsStreamWriter.writeStartOrEmpty(SimpleNsStreamWriter.java:257)
at
com.ctc.wstx.sw.BaseNsStreamWriter.writeStartElement(BaseNsStreamWriter.java:318)
at
org.codehaus.xfire.aegis.stax.ElementWriter.writeStartElement(ElementWriter.java:116)
at org.codehaus.xfire.aegis.stax.ElementWriter.<init>(ElementWriter.java:61)
at
org.codehaus.xfire.aegis.stax.ElementWriter.getElementWriter(ElementWriter.java:161)
at org.codehaus.xfire.aegis.type.basic.BeanType.getWriter(BeanType.java:421)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:386)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
at org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:392)
... (This line are repeated a lot of time before those lines)
Until now I've done some remote debuging to be sure that the FileDataSource is
able to
retrieve the file that the service have to transfer and all seem's to working
well in the service code...
Does someone have any tips or tricks for me ?!?!??!?
Cheer's,
Simon Rousseau
CSSMI