Como crear un reporte con Ireport con un datasours desde un web service hecho en java

Hala comunidad. Esta es la primera vez que publico, quisieras saber si es posible crear un reporte con el ireport usando un datasours hecho en un xml como base de datos todo esto ejecutado desde un web service. investigando por internet me encontré con algunos ejemplos de aplicaciones donde se usa una aplicación hecha en java con un datasour para como base de datos. pero no funcionan. Si alguien me puede orientar o mostrarme un ejemplo se los agradecería este proyecto y para un trabajo escolar. investigando me tope con este ejemplo
import java.io.FileNotFoundException;
import java.util.HashMap;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.view.JasperViewer;
public class XMLDataSourceSample {
public static void main(String[] args) throws FileNotFoundException, JRException {
JasperReport jasperReport = null;
String recordPath = "/employee/person";
String xmlFileName = "Address.xml";
String path = "D:/JasperTemplates/";
JasperPrint jasperPrint = null;
//Provide path for your JRXML template.
String templateName = path+"ReportXML.jrxml";
//Provide path for your final pdf file.
String destinationFile = path+"ReportXML.pdf";
//Compiling the template.
jasperReport = JasperCompileManager.compileReport(templateName);
//Sending a parameter with the logged in user name as value
HashMap parameters = new HashMap();
//Creating the datasource
JRXmlDataSource jrxmlds = new JRXmlDataSource(path+xmlFileName, recordPath);
// Filling the report template with data
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,jrxmlds);
JasperViewer.viewReport(jasperPrint);
//Exporting it to an PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, destinationFile);
}
}
- See more at: http://www.javabeat.net/2011/03/jasper-reports-and-data-sources/2/#sthas...

pero no funciona espero que me puedan ayudar

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Mis ojos T_T

Podrías formatear tu código con tags de <code> y </code>?
Qué error te sale? Publica tu stack trace.

Hablando del reporte en sí, desconozco si hay forma de que viaje un arreglo de bytes (supongo que sí) a través de un WS y al final volverlo fichero en el cliente, en caso de que no se pudiera, ya cuando tienes tu reporte, lo podrías transformar en una cadena en base64 y esa viajaría por el WS como un String.

error

Antes que nada agracias por responder. la formar en que regresaría el archivo al cliente lo aria en una cadena de base64 dentro de un xml, en eso no tengo problema, pero si con la generación del pdf y el error que me manda es el siguiente
org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 2 column 415: El elemento raíz del documento "jasperReport", debe coincidir con la raíz DOCTYPE "null".
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 415; El elemento raíz del documento "jasperReport", debe coincidir con la raíz DOCTYPE "null".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(XMLDTDValidator.java:1599)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1877)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:742)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1323)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1277)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3065)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)

pero no se a que se refiere y esto ya no me genera nada saludos.....