包org.apache.thrift不存在 [英] package org.apache.thrift does not exist

查看:2857
本文介绍了包org.apache.thrift不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一个使用thrift的基本java应用程序。我缺少的是一个工作jar文件。

I'm trying to write a basic java application that would use thrift. The thing I'm missing is a working jar file.

我从官方网站下载页面下载了0.8.0 gz版本的thrift并创建了jar存档我自己的( jar cf thrift-0.8.0.jar src / org )。我已将新的jar文件移动到我的项目目录中。然后,我手动将这个jar文件添加到项目中 - 我在NetBeans IDE中工作。一切似乎应该工作,但它没有 - 红色错误消息发生在我想要使用thrift libs的任何地方。这是我的代码:

I've downloaded 0.8.0 gz version of thrift from the official website download pages and created the jar archive on my own (jar cf thrift-0.8.0.jar src/org). I've moved the new jar file into my project directory. Then, I've added this jar file manually to the project - I'm working in NetBeans IDE. Everything seems as it should work, but it doesn't - red error messages occur everywhere I want to use thrift libs. This is piece of my code:

package com.blogspot.symfonyworld.thrift;

import com.blogspot.symfonyworld.thrift.server.MainService;
import org.apache.thrift.TException;

public class MainServiceHandler implements MainService.Iface {

  @Override
    public int add(int n1, int n2) throws TException {
        return n1 + n2;
    }

    @Override
    public int sub(int n1, int n2) throws TException {
        return n1 + n2;
    }

}

和另一个文件:

/**
 * Autogenerated by Thrift Compiler (0.8.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package com.blogspot.symfonyworld.thrift.server;

import org.apache.thrift.scheme.IScheme;
import org.apache.thrift.scheme.SchemeFactory;
import org.apache.thrift.scheme.StandardScheme;

import org.apache.thrift.scheme.TupleScheme;
import org.apache.thrift.protocol.TTupleProtocol;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MainService {

  public interface Iface {

    public int add(int n1, int n2) throws org.apache.thrift.TException;

    public int sub(int n1, int n2) throws org.apache.thrift.TException;

  }

  public interface AsyncIface {

    public void add(int n1, int n2, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.add_call> resultHandler) throws org.apache.thrift.TException;

    public void sub(int n1, int n2, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.sub_call> resultHandler) throws org.apache.thrift.TException;

  }

当我运行build时,出现以下错误:

When I run build, I get following errors:

ant -f /var/www/laughing-thrift-duck jar
init:
Deleting: /var/www/laughing-thrift-duck/build/built-jar.properties
deps-jar:
Updating property file: /var/www/laughing-thrift-duck/build/built-jar.properties
Compiling 2 source files to /var/www/laughing-thrift-duck/build/classes
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/MainServiceHandler.java:4: package org.apache.thrift does not exist
import org.apache.thrift.TException;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:9: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.IScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:10: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.SchemeFactory;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:11: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.StandardScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:13: package org.apache.thrift.scheme does not exist
import org.apache.thrift.scheme.TupleScheme;
/var/www/laughing-thrift-duck/src/com/blogspot/symfonyworld/thrift/server/MainService.java:14: package org.apache.thrift.protocol does not exist
import org.apache.thrift.protocol.TTupleProtocol;
# and many many more...

主要问题是:包org.apache.thrift不存在 - 怎么来的?!

The main question is: package org.apache.thrift does not exist - how come?!

有人能指出我在将自定义jar导入项目时遇到了什么问题?我认为这与thrift没有任何关系,但是通常会导入jar。

Can someone point me on what did I do wrong with importing a custom jar into my project? I think this has nothing to do with thrift precisely, but with importing jars in general.

推荐答案


我从官方网站下载页面下载了0.8.0 gz版本的thrift,并自己创建了jar存档(jar cf thrift-0.8.0.jar src / org)

I've downloaded 0.8.0 gz version of thrift from the official website download pages and created the jar archive on my own (jar cf thrift-0.8.0.jar src/org)

为什么要创建自己的jar?为什么用源文件创建它? jar库必须至少包含准备使用的字节码类。

Why did you create your own jar? And why you created it with source files? A jar library must contain at least the bytecode classes, ready to be used.

你必须让thrift编译成jar然后再使用它:

You must let thrift compile itself into a jar and then use it:


  • 浏览 / lib / java

  • 在终端中运行 ant

  • 检查构建文件夹,你会看到 .jar

  • 使用那个

  • browse to /lib/java
  • run ant in terminal
  • check the build folder and you will see a .jar
  • use that one

这篇关于包org.apache.thrift不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆