A mi me estaba pasando lo mismo y vi que pasándole un empty data source (JREmptyDataSource) si se muestra el reporte.
Código de Ejemplo:
Código:
InputStream report = JasperUtils.class.getResourceAsStream(reportPath);
try {
JasperReport jasperReport = JasperCompileManager.compileReport(report);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, new JREmptyDataSource());
JasperViewer.viewReport(jasperPrint, false);
} catch (JRException e) {
log.error("Error: " + e.getMessage(), e);
}