我正在尝试编写一个可以使用节俭的基本java应用程序。我缺少的东西是一个工作的jar文件。包org.apache.thrift不存在
我已经从官方网站下载页面下载了0.8.0 gz的节俭版本,并自行创建了jar文件(jar cf thrift-0.8.0.jar src/org
)。我已经将新的jar文件移动到我的项目目录中。然后,我将这个jar文件手动添加到项目中 - 我正在使用NetBeans IDE。一切似乎都应该起作用,但它不会 - 在我想要使用节俭库的任何地方都会出现红色错误消息。这是一张我的代码:
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;
}
当我运行的身材,我收到以下错误:
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不存在 - 怎么回事?
有人可以指点我做了什么错误导入自定义jar到我的项目?我认为这与精确节俭没有任何关系,但是通常会导入罐子。
下载Apache Thrift并将jar放入类路径中。如果它是一个Web应用程序,请将其放入'WEB-INF/lib'文件夹中。 – 2013-03-15 15:11:06