Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSNI:GWT:没有可用于java.io.RandomAccessFile类型的源代码_Java_Javascript_Gwt_Jsni - Fatal编程技术网

JSNI:GWT:没有可用于java.io.RandomAccessFile类型的源代码

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类型没有可用的源代码;您是否忘记继承所需的模块? 有人能帮

我是GWT的n00b。 我想使用RandomAccessFile读取文件并显示在网页上

我发现GWT客户端不支持RandomAccessFile,要调用java函数,我们必须使用JSNI

我有一个JSNI函数,它调用包含随机访问文件代码的函数。 当我运行web项目时,我发现下面的错误,但页面已加载,并且我能够在文本框中看到文件内容

错误: 14:58:43.854[错误][监视活动]第14行java.io.RandomAccessFile类型没有可用的源代码;您是否忘记继承所需的模块?

有人能帮我纠正这个错误吗

这个随机访问文件代码的实现和客户端在同一个包中的不同java文件中。我必须在gwt.xml文件中添加任何内容吗

代码:


我正在从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();

        }-*/;

    }