JasperReports java.sql.SQLException:未选择数据库

时间:2015-07-14 12:31:36

标签: java jasper-reports

我必须继续开发一个Web应用程序,但我发现了这个错误,但我不知道如何修复它。当我单击生成pdf时,它会调用以下函数:

public void crearPDF(Integer idProyecto, Usuarios usuario, String email, Boolean archivoDoc, Locale locale) throws SQLException
    {
        System.err.println("Entrando en crearPDF");
        //String ruta = "\\\\SERVER\\producción\\PDFAPP\\" + usuario.getNombre() + "\\";
        String ruta = "/home/pdfapp/" + usuario.getNombre() + "/";
        Integer versionProyecto;

        File rutaFile = new File(ruta);

        JRPdfExporter exp = new JRPdfExporter();
        JRPdfExporter exp2 = new JRPdfExporter();
        JRDocxExporter expD = new JRDocxExporter();

        Connection conn = null;

        if(!rutaFile.exists()){
            rutaFile.mkdirs();
        }

        MailUtil mUtil = new MailUtil();

        String nombreProyecto;

        FacesContext context = FacesContext.getCurrentInstance();

        //LOCALIZACIÓN DE INFORMES

        //Si no viene especificado por el administrador, extraer el idioma del contexto (establecido en función del usuario)

        //Genera el ResourceBundle que le pasaremos por parámetro
        ResourceBundle rb = ResourceBundle.getBundle("com.appglass.jasper.resources.report", locale);

        //Introducimos los parámetros necesarios
        HashMap <String, Object> map = new HashMap <String, Object>();

        map.put("rutaImagenes", (Object) rutaImagenes);
        map.put("idProyecto", (Object) idProyecto);
        map.put("archivoDoc", (Object) archivoDoc);
        map.put(JRParameter.REPORT_LOCALE,locale);
        map.put(JRParameter.REPORT_RESOURCE_BUNDLE, rb);



        try{

            Session session = HibernateUtil.getSessionFactory().getCurrentSession();

            session.beginTransaction();
            //Nuevo para conseguir session.connection() en hibernate 4.x
            SessionFactoryImpl sessionFactory = (SessionFactoryImpl) session.getSessionFactory();
            conn = sessionFactory.getConnectionProvider().getConnection();
            //session.connection() fue borrado en hibernate 4.x
            //conn = session.connection();

/*JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "Deja Vu Sans");

JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params);

JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName);            */
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/com/appglass/jasper/report2.jasper");
            InputStream reporte2 = (InputStream) getClass().getResourceAsStream("/com/appglass/jasper/report2_subreport1B.jasper");
            InputStream reporte3 = (InputStream) getClass().getResourceAsStream("/com/appglass/jasper/report2_subreport2B.jasper");
            InputStream reporte4 = (InputStream) getClass().getResourceAsStream("/com/appglass/jasper/report2_plano.jasper");
            InputStream reporte5 = (InputStream) getClass().getResourceAsStream("/com/appglass/jasper/report2_resumen.jasper");
            // Path completo C:/Users/pool/Documents/NetBeansProjects/AppGlass/src/java

            if ((reporte == null) || reporte2 == null || reporte3 == null || reporte4 == null){
                System.err.println("No se ha encontrado el archivo .jasper");
            }


            System.err.println("Antes de llamar a JasperFillManager.fillReport");
            JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, map, conn); //HERE THERE IS A PROBLEm<---------------------------------------------------------------
            System.err.println("Report1 done");
            JasperPrint jasperPrint2 = JasperFillManager.fillReport(reporte2, map, conn);
            JasperPrint jasperPrint3 = JasperFillManager.fillReport(reporte3, map, conn);
            JasperPrint jasperPrint4 = JasperFillManager.fillReport(reporte4, map, conn);
            JasperPrint jasperPrint5 = JasperFillManager.fillReport(reporte5, map, conn);
            System.err.println("Antes de llamar a JasperViewer.viewReport");


            //Para exportar el PDF al cliente
            HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();


            List list = new ArrayList();
            list.add(jasperPrint4);
            list.add(jasperPrint5);
            list.add(jasperPrint);
            list.add(jasperPrint2);
            list.add(jasperPrint3);


            if(!archivoDoc){
                exp.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, list);
                exp2.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, list);
                exp.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
                exp.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
            }

            nombreProyecto = queryGetNombreProyecto(conn, idProyecto);


            versionProyecto = queryGetVersionProyecto(conn, idProyecto);

            if(!archivoDoc){
                //Fijamos como salida un fichero en SERVER
                exp2.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, ruta + nombreProyecto + "(" + (versionProyecto + 1) + ").pdf");
                exp2.setParameter(JRPdfExporterParameter.METADATA_AUTHOR, usuario.getNombre());
                exp2.setParameter(JRPdfExporterParameter.METADATA_TITLE, nombreProyecto);
                exp2.exportReport();
            } else {
                expD.setParameter(JRDocxExporterParameter.JASPER_PRINT_LIST, list);
                //Fijamos como salida un fichero en SERVER
                expD.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, ruta + nombreProyecto + "(" + (versionProyecto + 1) + ").doc");

                //Fijamos como salida la un fichero en el servidor remoto
                expD.exportReport();
            }

            //Enviamos el mail de confirmación con el informe adjunto
            mUtil.confirmacionInforme(email, usuario, nombreProyecto, archivoDoc, versionProyecto + 1);

            //Fijamos como salida el lector de PDF del navegador
            if(!archivoDoc){

               response.setHeader("Content-Type", "application/pdf; charset=UTF-8");
               response.setHeader("Content-disposition", "attachment; filename*=UTF-8\'\'" + URLEncoder.encode(nombreProyecto, "UTF-8") + ".pdf");
               exp.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
               exp.exportReport();
            }

           session.getTransaction().commit();
           //conn.commit();

        }catch(SQLException sqlEx){
            System.err.println("Error creando el PDF");
            System.err.println(sqlEx.getClass());
            System.err.println(sqlEx.getCause());
            System.err.println(sqlEx.getMessage());

        }
        catch (HibernateException ex)
        {

            System.err.println("Error creando el PDF");
            System.err.println(ex.getClass());
            System.err.println(ex.getCause());
            System.err.println(ex.getMessage());

        } catch (JRException ex) {
            System.err.println("Error creando el PDF");
            System.err.println(ex.getClass());
            System.err.println(ex.getCause());
            System.err.println(ex.getMessage());
        } catch (IOException ex) {
            System.err.println("Error creando el PDF");
            System.err.println(ex.getClass());
            System.err.println(ex.getCause());
            System.err.println(ex.getMessage());
        } finally {

            if(conn != null){
                conn.close();
            }
        }

        System.err.println("Antes de responseComplete");
        FacesContext.getCurrentInstance().responseComplete();

    }

错误的堆栈:

Severe:   log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
Severe:   log4j:WARN Please initialize the log4j system properly.
Severe:   class net.sf.jasperreports.engine.JRException
Severe:   java.sql.SQLException: No database selected
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885)
    at com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.executeQuery(PreparedStatementWrapper40.java:642)
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:239)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1073)
    at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:667)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1253)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:407)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:824)
    at com.appglass.jasper.Reportes.crearPDF(Reportes.java:245)
    at com.appglass.backing.ProyectoAgregadoBacking.crearPDF(ProyectoAgregadoBacking.java:78)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
    at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
    at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
    at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:813)
    at javax.faces.component.UICommand.broadcast(UICommand.java:300)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Severe:   Error executing SQL statement for : report2
Severe:   Antes de responseComplete

report2.jrxml

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report2" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="0" resourceBundle="com.appglass.jasper.resources.report.properties" uuid="70977800-585f-4d11-94b6-26a37538935c">
    <property name="ireport.zoom" value="1.3636363636363635"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="56"/>
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="Table Dataset 1" uuid="836bbd96-4049-40fd-be32-86fc2832a1d2"/>
    <parameter name="idProyecto" class="java.lang.Integer">
        <defaultValueExpression><![CDATA[]]></defaultValueExpression>
    </parameter>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["com/appglass/jasper/"]]></defaultValueExpression>
    </parameter>
    <parameter name="rutaImagenes" class="java.lang.String"/>
    <parameter name="archivoDoc" class="java.lang.Boolean">
        <defaultValueExpression><![CDATA[false]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[SELECT
     usuarios.`nombre` AS usuarios_nombre,
     proyectos.`nombreProyecto` AS proyectos_nombreProyecto,
     proyectos.`fecha` AS proyectos_fecha,
     proyectos.`version` AS proyectos_version,
     secciones.`tipoPuertaIzquierda` AS secciones_tipoPuertaIzquierda,
     secciones.`tipoPuertaDerecha` AS secciones_tipoPuertaDerecha

FROM
     `secciones` secciones INNER JOIN `proyectos` proyectos ON secciones.`id_proyecto` = proyectos.`id` INNER JOIN `usuarios` usuarios ON proyectos.`id_usuario` = usuarios.`id`
WHERE
     proyectos.id = $P{idProyecto}]]>
    </queryString>
    <field name="usuarios_nombre" class="java.lang.String"/>
    <field name="proyectos_nombreProyecto" class="java.lang.String"/>
    <field name="proyectos_fecha" class="java.sql.Date"/>
    <field name="proyectos_version" class="java.lang.Integer"/>
    <field name="secciones_tipoPuertaIzquierda" class="java.lang.Integer"/>
    <field name="secciones_tipoPuertaDerecha" class="java.lang.Integer"/>
    <variable name="pEspecial1" class="java.lang.Integer" calculation="System">
        <variableExpression><![CDATA[]]></variableExpression>
        <initialValueExpression><![CDATA[0]]></initialValueExpression>
    </variable>
    <variable name="pEspecial2" class="java.lang.Integer" calculation="System">
        <variableExpression><![CDATA[]]></variableExpression>
        <initialValueExpression><![CDATA[0]]></initialValueExpression>
    </variable>
    <variable name="rutaImagen1" class="java.lang.String">
        <variableExpression><![CDATA["images\\"]]></variableExpression>
    </variable>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="97" splitType="Stretch">
            <textField>
                <reportElement uuid="169e3810-2e48-4eea-94c9-64162d754b44" x="170" y="32" width="279" height="20"/>
                <textElement>
                    <font fontName="DejaVu Sans" size="14" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{proyectos_nombreProyecto}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="683e06eb-b374-4ca0-8ee5-c80eb252da49" x="121" y="59" width="100" height="20"/>
                <textElement textAlignment="Right">
                    <font fontName="DejaVu Sans"/>
                </textElement>
                <textFieldExpression><![CDATA[new SimpleDateFormat("dd/MM/yyyy ").format($F{proyectos_fecha})]]></textFieldExpression>
            </textField>
            <image>
                <reportElement uuid="b4ecda02-fa51-45b5-8ee8-c999a48e9051" x="438" y="0" width="99" height="96"/>
                <imageExpression><![CDATA[$P{SUBREPORT_DIR} + $P{rutaImagenes} + "logoreport.jpg"]]></imageExpression>
            </image>
            <textField>
                <reportElement uuid="296afbcb-3d7f-4653-8287-92e582927039" x="21" y="32" width="149" height="20"/>
                <textElement>
                    <font fontName="DejaVu Sans" size="14"/>
                </textElement>
                <textFieldExpression><![CDATA[$R{general.resumenproy} + ":"]]></textFieldExpression>
            </textField>
            <textField isStretchWithOverflow="true">
                <reportElement uuid="b8d89e63-7c47-4c80-92cc-5cdfccb8c35d" x="21" y="59" width="100" height="20"/>
                <textElement>
                    <font fontName="DejaVu Sans"/>
                </textElement>
                <textFieldExpression><![CDATA[$R{general.fechacrea} + ":"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="683e06eb-b374-4ca0-8ee5-c80eb252da49" x="537" y="1" width="17" height="13"/>
                <textElement textAlignment="Right">
                    <font size="6"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{proyectos_version} + ($P{archivoDoc} ? "*" : "")]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band height="22" splitType="Stretch">
            <textField>
                <reportElement uuid="0234364a-ef1b-4456-b3a4-d4d693b3c595" x="21" y="0" width="235" height="22"/>
                <textElement>
                    <font fontName="DejaVu Sans" size="12" isBold="true" isUnderline="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$R{cristal.titulo}]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="50" splitType="Immediate">
            <subreport>
                <reportElement uuid="88eb3e2c-c5ec-4a37-839e-7db3c0042d68" stretchType="RelativeToBandHeight" isPrintRepeatedValues="false" x="21" y="0" width="534" height="50" isRemoveLineWhenBlank="true">
                    <printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue() ==1)]]></printWhenExpression>
                </reportElement>
                <subreportParameter name="REPORT_LOCALE">
                    <subreportParameterExpression><![CDATA[$P{REPORT_LOCALE}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="SUBREPORT_DIR">
                    <subreportParameterExpression><![CDATA[$P{SUBREPORT_DIR}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="idProyecto">
                    <subreportParameterExpression><![CDATA[$P{idProyecto}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="REPORT_RESOURCE_BUNDLE">
                    <subreportParameterExpression><![CDATA[$P{REPORT_RESOURCE_BUNDLE}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <returnValue subreportVariable="pEspecial1" toVariable="pEspecial1"/>
                <returnValue subreportVariable="pEspecial2" toVariable="pEspecial2"/>
                <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report2_cristalA.jasper"]]></subreportExpression>
            </subreport>
        </band>
        <band height="51" splitType="Immediate">
            <subreport>
                <reportElement uuid="3a84aa6f-11a5-41d4-bdc6-2d28a1b425ad" isPrintRepeatedValues="false" mode="Transparent" x="21" y="0" width="534" height="50" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true">
                    <printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue() ==1) && (($V{pEspecial1} > 0) || ($V{pEspecial2} > 0))]]></printWhenExpression>
                </reportElement>
                <subreportParameter name="REPORT_LOCALE">
                    <subreportParameterExpression><![CDATA[$P{REPORT_LOCALE}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="SUBREPORT_DIR">
                    <subreportParameterExpression><![CDATA[$P{SUBREPORT_DIR}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="idProyecto">
                    <subreportParameterExpression><![CDATA[$P{idProyecto}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="REPORT_RESOURCE_BUNDLE">
                    <subreportParameterExpression><![CDATA[$P{REPORT_RESOURCE_BUNDLE}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report2_cristalB.jasper"]]></subreportExpression>
            </subreport>
        </band>
    </detail>
    <summary>
        <band height="287" splitType="Immediate">
            <image scaleImage="FillFrame" evaluationTime="Report">
                <reportElement uuid="d9af6aa4-b640-4c0f-81b0-aca30c23ea02" isPrintRepeatedValues="false" mode="Transparent" x="59" y="23" width="111" height="223" isRemoveLineWhenBlank="true">
                    <printWhenExpression><![CDATA[($V{pEspecial1} > 0)]]></printWhenExpression>
                </reportElement>
                <imageExpression><![CDATA[$P{SUBREPORT_DIR} + $P{rutaImagenes} + "puertapomo.jpg"]]></imageExpression>
            </image>
            <image scaleImage="FillFrame" evaluationTime="Report">
                <reportElement uuid="a0a422b4-8c27-4d73-a5bb-4724f091b48e" isPrintRepeatedValues="false" x="221" y="23" width="111" height="223" isRemoveLineWhenBlank="true">
                    <printWhenExpression><![CDATA[($V{pEspecial2} > 0)]]></printWhenExpression>
                </reportElement>
                <imageExpression><![CDATA[$P{SUBREPORT_DIR} + $P{rutaImagenes} + "pcerradura2.jpg"]]></imageExpression>
            </image>
            <textField evaluationTime="Report">
                <reportElement uuid="8837a7fd-db0e-40ef-9e65-eff14bc16e69" isPrintRepeatedValues="false" x="59" y="246" width="111" height="17" isRemoveLineWhenBlank="true">
                    <printWhenExpression><![CDATA[($V{pEspecial1} > 0)]]></printWhenExpression>
                </reportElement>
                <textElement textAlignment="Center">
                    <font fontName="DejaVu Sans"/>
                </textElement>
                <textFieldExpression><![CDATA[$R{cristal.tipo1}]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement uuid="cb7abd52-2136-4f6d-8b3b-df6e8679ede7" isPrintRepeatedValues="false" x="221" y="246" width="111" height="17" isRemoveLineWhenBlank="true">
                    <printWhenExpression><![CDATA[($V{pEspecial2} > 0)]]></printWhenExpression>
                </reportElement>
                <textElement textAlignment="Center">
                    <font fontName="DejaVu Sans"/>
                </textElement>
                <textFieldExpression><![CDATA[$R{cristal.tipo2}]]></textFieldExpression>
            </textField>
        </band>
    </summary>
</jasperReport>

错误的堆栈明确指出:java.sql.SQLException:未选择数据库,但数据库运行良好。应用程序的其他方法可以在DB(MySQL)中选择和插入数据。所以我猜问题是在JasperReports配置中。有没有人知道发生了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

我发现了问题。我在服务器(glassfish)中有这个

"URL"="jdbc:mysql://localhost:3306/" 

但我应该改为:

"URL"="jdbc:mysql://localhost:3306/databasename"

现在效果很好。