java - 通过Java Applet访问HBase REST API

标签 java rest applet hbase

我目前正在编写一个小型 Java 小程序来使用 REST API 访问 HBase 数据。使用Java访问数据并不是特别困难,我已经成功地做到了。当在我的 HDP 集群中的机器上运行时,结果非常完美。但是,当作为小程序运行时,我根本没有得到任何结果。 (我选择了小程序,因为分发可执行 JAR 是我老板想要避免的事情)

终于找到了我认为的根本问题,我发现了以下运行时异常:hbase-default.xml file seems to be for an older version of HBase (null), this version is 1.1.2.2.4.0.0-169 。我的假设是,这是由于我的本地计算机根本没有 HBase 造成的。目的是用户将能够从本地计算机查看自己的数据,因此我不能期望所有用户都拥有 HBase(或浏览器以外的任何东西)

我的问题实际上有两个部分:

  • 有没有办法让这样的小程序工作?

  • 对于此类工作,是否有比小程序更好的替代方案?

发布我的代码,以防我犯了一些重大错误:

public class HBaseConnector extends JApplet
{
    private Cluster cluster;

    public void init()
    {
        System.out.println("Applet initialising");
        cluster = new Cluster();
        cluster.add("hbase_server", 9080);
    }

    public void start()
    {
        System.out.println("Applet starting");
        Client client = new Client(cluster);
        RemoteHTable table = new RemoteHTable(client, "table_name");
        Get get = new Get(Bytes.toBytes("key"));
        get.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("Record"));
        try
        {
            Result result1 = table.get(get);
            JOptionPane.showMessageDialog(null, Bytes.toString(result1.getValue(Bytes.toBytes("f1"), Bytes.toBytes("Record"))), "Result", JOptionPane.INFORMATION_MESSAGE);

        }
        catch (Exception ex)
        {
            System.err.println("Exception occurred");
        }
    }

    public void stop()
    {
        System.out.println("Applet stopping");
    }

    public void destroy()
    {
        System.out.println("Applet destroyed");
    }
}

最佳答案

虽然我无法解决小程序本身的这个问题,但我设法通过移动 JNLP 应用程序 ( JNLP ) 来使应用程序正常工作。鉴于此,我怀疑根本问题是由于小程序在沙箱中运行而导致的权限问题。这很好,因为我知道大多数浏览器正在放弃 Java 插件。

我发现的另一个可能的原因:hbase-default.xml 必须位于 jar 的根文件夹中。

关于java - 通过Java Applet访问HBase REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568933/

相关文章:

java - 无法在本地主机中运行 Java 小程序

java - IntelliJ 卡在 "Copying resources"

java - 从文本文件读取并将字符串更改为要在数组中输入的整数不起作用

java - Apache POI A3 页面在打印预览中显示两页

java - RESTEasy 中的 CORS 过滤器

c# - 当我知道 Rally 中存在项目时,为什么使用用户故事名称和迭代进行查询会返回零项目?

Java 小程序无法在 Internet Explorer 上重新加载

java - 使用 MouseListener Java 小程序拖动对象

java - intellij scala java.lang.classnotfoundException oracle.jdbc.driver.oracledriver

java - 使用 Spring Boot 创建 RESTful Web 服务