2016-04-12 2 views
0

Я хочу использовать vertx и JasperReports, я создаю свое соединение, и я тестирую его, все в порядке, но когда я хочу заполнить отчет jasper с помощью метода fillReport (где последний из них - Connection) он показывает сообщение об ошибке:Vertx: не могу прочитать SQLConnection из fillReport

метод fillReport (JasperReport, Карта < String, Object> Connection) в типе JasperFillManager не применяется для аргументов (JasperReport, нулевой класс < соединение>).

Любая идея, как я должен подключить свой SQLConnect для подключения?

Вот мой код:

AsyncSQLClient client = MySQLClient.createShared(vertx, mySQLClientConfig); 
    client.getConnection(res -> { 
     if (res.succeeded()) { 
        SQLConnection connection = res.result(); 
        try{ 
       String report = "C:\\Users\\paths\\Test1.jrxml"; 
       JasperReport Jasp = JasperCompileManager.compileReport(report); 
       JasperPrint JASP_PRINT = JasperFillManager.fillReport(Jasp, null, connection); 
       JasperViewer.viewReport(JASP_PRINT);       
         } 
        catch(Exception ex){System.out.println(ex);} 

С уважением.

ответ

0

Ответ прост. Вы не можете использовать Vert.x io.vertx.ext.sql.SQLConnection для JDBC java.sql.Connection.

Vert.x сильно зависит от асинхронных вызовов. JDBC блокируется, и поэтому Vert.x обертывает его асинхронным интерфейсом (и немного больше). Невозможно добраться до настоящего java.sql.Connection, так как в JDBCConnectionImpl или в интерфейсеотсутствует геттер или что-то в этом роде.

Это не означает, что вы не можете использовать Jasper с Vert.x. Вам нужно открыть собственное соединение JDBC, но не block the Event loop! Поэтому я предлагаю вам взглянуть на Worker Verticles, которые не блокируют цикл Event, потому что они разворачивают поток разделения.

+0

Благодарим вас за ответ @alexvetter, поэтому нет способа использовать vert.x с сообщением о яшме? – zackzulg

+0

Изменил мой ответ. Надеюсь, теперь он ответит на ваш вопрос. – alexvetter

+0

Благодарим вас за помощь, я посмотрю на Рабочих, у вас хороший день @alexvetter – zackzulg

Смежные вопросы