2016-04-12 3 views
0

vertxとJasperReportsを使用したいのですが、接続を作成してテストしても問題ありませんが、fillReportメソッドを使用してジャスパーレポートを埋めたい場合は)それはエラーを示しています。JasperReport(JasperFillManagerは、引数には適用されませんタイプにVertx:fillReportからSQLConnectionを読み取ることができません

方法fillReport(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は非同期インターフェイス(およびもう少し)でラップします。 JDBCConnectionImplまたはSQLConnectionインターフェイスにゲッターなどがないため、実際のjava.sql.Connectionにアクセスする方法はありません。

これは、あなたがVert.xでJasperを使用することはできません。あなたは自分自身でJDBC接続を開く必要がありますが、block the Event loopはありません!だから私はWorker Verticlesを見てみることをお勧めします。これらは分離ループをスピンアップするのでイベントループをブロックしません。

+0

ジャスパーレポートでvert.xを使用する方法がないので、@alexvetterに感謝しますか? – zackzulg

+0

私の答えを編集しました。あなたの質問に答えてくれることを願っています。 – alexvetter

+0

助けてくれてありがとう、私は労働者を見て、良い一日を持っています@alexvetter – zackzulg

関連する問題