私は GWT の n00b です。RandomAccessFile を使用してファイルから読み取り、Web ページに表示したいと考えています。
GWT クライアントでは RandomAccessFile がサポートされておらず、Java 関数を呼び出すには JSNI を使用する必要があることがわかりました。
RandomAccessFile コードを持つ関数を呼び出す JSNI 関数があります。Web プロジェクトを実行すると、以下のエラーが発生しますが、ページが読み込まれ、テキスト ボックスにファイルの内容が表示されます。
エラー: 14:58:43.854 [エラー] [監視アクティビティ] 14 行目 java.io.RandomAccessFile 型のソース コードはありません。必要なモジュールを継承するのを忘れましたか?
誰でもこのエラーを修正するのを手伝ってくれますか?
この RandomAccessFile コードの実装は、クライアントと同じパッケージ内の別の Java ファイルにあります。gwt.xml ファイルに何か追加する必要はありますか?
コード:
package com.monitor.client;
import java.io.RandomAccessFile;
public class JsniExample {
static String res;
public static String testRandomAccessFile()
{
try {
// Connect
RandomAccessFile pWrite = new RandomAccessFile("/tmp/file1", "rw");
String echoText = "Hello World\n";
System.out.println("Write \n");
// write
pWrite.write ( echoText.getBytes() );
pWrite.close();
RandomAccessFile pRead = new RandomAccessFile("/tmp/file2", "rw");
System.out.println("read\n");
// read response
res = pRead.readLine();
System.out.println("Response: " + res );
pRead.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
public static native String jsniCode()
/*-{
var res = @com.monitor.client.JsniExample::testRandomAccessFile()();
return res.toString();
}-*/;
}
onModuleLOad から呼び出しています: res = JsniExample.jsniCode();