Gwt不能与com端口rxtx一起使用

时间:2012-07-06 12:37:13

标签: java

com2 - 它与com端口(rxtx库)一起工作的类。 当我在gwt上运行我的网站并按下按钮时运行此功能并出现错误:

public String greetServer(String input)  {


    try {
        comm2 COM = new comm2("COM3", "$KE,WR,6,1\n");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return input;



}


  Caused by: java.lang.NoClassDefFoundError: Could not initialize class gnu.io.CommPortIdentifier
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:69)
        at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
        at com.aaa.server.comm2.<init>(comm2.java:17)
        at com.aaa.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:18)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
        ... 34 more
第一次运行

我看错了

Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.rxtxSerial)

2 个答案:

答案 0 :(得分:4)

GWT主要是一个交叉编译器,它将Java代码转换为完全在浏览器内运行的Javascript。这意味着你不能做任何在浏览器内部无法完成的任何事情或访问COM端口

更新1:


实际上,在审核了您的问题后,您的代码似乎是在服务器上运行而不是在客户端上运行。你的问题困惑了我。你的问题应该是关于通过嵌入式码头上的gwt rpc执行库或其他什么。

我可以看到你的堆栈跟踪列出谷歌应用引擎,你打算在应用引擎上运行应用程序吗?如果是,那么您打算如何访问硬件?如果没有,您应该删除应用引擎依赖项并直接在Web服务器上运行。

答案 1 :(得分:3)

这是因为您没有正确的目录或路径中的所有RxTx本机依赖项。

为避免此错误,请使用“Neuron Robotics Java Serial Library”一个RxTx fork。

优于原始RxTx的优势

  • 本机库的自我部署(所有本机代码都存储在jar中并在运行时部署)。不再手动安装本机代码
  • 一个名为NRSerialPort的简化串口类,用于:打开,读取,写入

下载“.Jar”

如果您使用maven,请使用

<dependency>
    <groupId>com.neuronrobotics</groupId>
    <artifactId>nrjavaserial</artifactId>
    <version>3.7.5.1</version>
</dependency>

检查maven的最新版本

PS:Google代码中的最新版本为3.8.4,并且位于mvnrepository 3.7.5.1中。