0

Google Chartファイルから生成されたいくつかのデータに基づいて、トレンドラインを表示しようとしました.java。私の基本的なアイデアは、Java ファイルで DataTable を作成することです。次に、この DataTable を Web ページに渡しますJSF

ここに私のコードの一部があります:

public void resolveEvolution() {
        this.evolution = new ArrayList<Long>();
        this.evolutionTime = new ArrayList<String>();
        Calendar first = Calendar.getInstance();
        first.setTime(this.start);
        first.set(Calendar.DAY_OF_MONTH, 1);
        Calendar last = Calendar.getInstance();
        last.setTime(this.end);

        int i = 0;

        this.dt = DataTable.create();
        dt.addColumn(ColumnType.NUMBER, "Time");
        dt.addColumn(ColumnType.NUMBER, "Utilisation");
        dt.addRow();
        while (first.before(last)) {
            Calendar endMonth = Calendar.getInstance();
            endMonth.setTime(first.getTime());
            endMonth.add(Calendar.MONTH, 1);
            endMonth.add(Calendar.DAY_OF_MONTH, -1);

            this.evolution
                    .add(actionQueries.countByComponent(this.selectedComponent,
                            first.getTime(), endMonth.getTime()));
            this.evolutionTime.add(first.get(Calendar.MONTH) + "/"
                    + first.get(Calendar.YEAR));
            dt.addRow();
            dt.setValue(i, 0, i);
            dt.setValue(i, 1,
                    actionQueries.countByComponent(this.selectedComponent,
                            first.getTime(), endMonth.getTime()));
            i++;
            first.add(Calendar.MONTH, 1);
        }
    }

    public DataTable getDt() {
        System.out.println(this.dt);
        return this.dt;
    }

そして、私の .xhtml ファイルでは、次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
    <head>    
<script type="text/javascript" src="https://www.google.com/jsapi"></script>    
<script type="text/javascript">      
    google.load("visualization", "1", {packages:["corechart"]});     
    google.setOnLoadCallback(drawChart);      
    function drawChart() {        
        var data = new google.visualization.DataTable();
        data = "#{globalComponentsManager.dt}";
        var options = {         
            title: 'Test',
                           trendlines: { 0: {} }

        };    
        var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));

        chart.draw(data, options);      
    }    
    </script> 
 </head>  
 <body>   
      <div id="chart_div" style="width: 900px; height: 500px;"></div> 
 </body> 

</html>

ただし、Tomcat でこのアプリケーションを実行すると、次のように表示されます。

GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.apache.myfaces.webapp.StartupServletContextListener
java.lang.NoClassDefFoundError: com/google/gwt/core/client/JavaScriptObject

どうしたの?事前に感謝します。

4

1 に答える 1

0

間違ったライブラリを使用していると思います (java.lang.NoClassDefFoundError: com/google/gwt/core/client/JavaScriptObjectエラーを参照してください)。

メソッドはサーバー上で実行されると思いresolveEvolution()ます。
使用DataTableしようとしている はGWTアプリケーションに使用され、バックエンド コードには使用されません ( JSF)。gwt-google-apis
の代わりに、 Data Soruce Java ライブラリの一部である を使用する必要がありますDataTable

于 2013-08-22T14:32:53.963 に答える