JSNI:GWT:没有可用于java.io.RandomAccessFile类型的源代码
我是GWT的n00b。 我想使用RandomAccessFile读取文件并显示在网页上 我发现GWT客户端不支持RandomAccessFile,要调用java函数,我们必须使用JSNI 我有一个JSNI函数,它调用包含随机访问文件代码的函数。 当我运行web项目时,我发现下面的错误,但页面已加载,并且我能够在文本框中看到文件内容 错误: 14:58:43.854[错误][监视活动]第14行java.io.RandomAccessFile类型没有可用的源代码;您是否忘记继承所需的模块? 有人能帮我纠正这个错误吗 这个随机访问文件代码的实现和客户端在同一个包中的不同java文件中。我必须在gwt.xml文件中添加任何内容吗 代码:JSNI:GWT:没有可用于java.io.RandomAccessFile类型的源代码,java,javascript,gwt,jsni,Java,Javascript,Gwt,Jsni,我是GWT的n00b。 我想使用RandomAccessFile读取文件并显示在网页上 我发现GWT客户端不支持RandomAccessFile,要调用java函数,我们必须使用JSNI 我有一个JSNI函数,它调用包含随机访问文件代码的函数。 当我运行web项目时,我发现下面的错误,但页面已加载,并且我能够在文本框中看到文件内容 错误: 14:58:43.854[错误][监视活动]第14行java.io.RandomAccessFile类型没有可用的源代码;您是否忘记继承所需的模块? 有人能帮
我正在从onModuleLOad调用:res=JsniExample.jsniCode() GWT不支持所有
文件
相关功能,只能在服务器端使用。GWT被交叉编译为Javascript并在浏览器上运行,您只能访问浏览器中运行的Javascript可以访问的内容,而文件系统中没有该内容
JSNI
并在GWT编译器中使用它,它与调用Java代码没有任何关系
您必须编写代码,从服务器上执行的网站上的文件读取数据,并以某种方式使用RPC
将数据发送到浏览器
JavaScript和DOM提供了
恶意作者攻击的可能性
交付要在客户端上运行的脚本
通过网络使用计算机。浏览器作者
使用两种方法控制这种风险
限制。首先,脚本运行在
他们只能在其中执行任务的沙箱
与web相关的操作,而不是
通用编程任务,如
操纵文件
GWT不支持所有
文件
相关功能,只能在服务器端使用。GWT被交叉编译为Javascript并在浏览器上运行,您只能访问浏览器中运行的Javascript可以访问的内容,而文件系统中没有该内容
JSNI
并在GWT编译器中使用它,它与调用Java代码没有任何关系
您必须编写代码,从服务器上执行的网站上的文件读取数据,并以某种方式使用RPC
将数据发送到浏览器
JavaScript和DOM提供了
恶意作者攻击的可能性
交付要在客户端上运行的脚本
通过网络使用计算机。浏览器作者
使用两种方法控制这种风险
限制。首先,脚本运行在
他们只能在其中执行任务的沙箱
与web相关的操作,而不是
通用编程任务,如
操纵文件
这不是GWT的问题。没有解决办法,你不能从浏览器中的Javascript访问文件系统。但奇怪的是,我能够看到文件evn的内容,尽管它抛出了这个错误。。。另外,当你说服务器端时,我如何在那里实现它,以便在页面上显示。。谢谢这不是GWT的问题。没有解决办法,你不能从浏览器中的Javascript访问文件系统。但奇怪的是,我能够看到文件evn的内容,尽管它抛出了这个错误。。。另外,当你说服务器端时,我如何在那里实现它,以便在页面上显示。。谢谢你的代码;你所说的你正在做的事情不可能像你描述的那样。你想要完成什么并不清楚,这不是JSNI的用途。标记为native的东西应该是Javascript代码,而不是Java。您缺少了JSNI的要点,JSNI的要点是,您可以注入一些GWT不会生成或干扰的手工编码Javascript。您不能使用Javascript/GWT从浏览器访问本地文件系统对象;你所说的你正在做的事情不可能像你描述的那样。你想要完成什么并不清楚,这不是JSNI的用途。标记为native的东西应该是Javascript代码,而不是Java。您缺少了JSNI的要点,JSNI的要点是,您可以注入一些GWT不会生成或干扰的手工编码Javascript。无法使用Javascript/GWT从浏览器访问本地文件系统对象。
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();
}-*/;
}