私は単純なThriftサーバーを試していて、クライアントをJavaで作成したいと考えていました。コマンドを実行しました
-> thrift -gen java BLT.thrift
生成されたJavaファイルOptimization.javaは、EclipseIDEで次のエラーを示しています。
public static class Client extends org.apache.thrift.TServiceClient implements Iface
エラー:タイプTServiceClientをClientのスーパークラスにすることはできません。スーパークラスはクラスでなければなりません
public Client(org.apache.thrift.protocol.TProtocol prot)
{
super(prot, prot);
}
コンストラクターObject(TProtocol、TProtocol)は未定義です。....。
私はまだ先に進んでそれを編集しました。
->mvn clean install
Optimization.java:[38,54] no interface expected here
[ERROR] /thrift/Optimization.java:[39,83] type parameter model.thrift.Optimization.Client is not within its bound
[ERROR] /thrift/Optimization.java:[68,6] cannot find symbol
symbol : method
sendBase(java.lang.String,com.model.thrift.Optimization.maximizeRevenue_args)
location: class model.thrift.Optimization.Client
[ERROR] /thrift/Optimization.java:[74,6] cannot find symbol
symbol : method
receiveBase(model.thrift.Optimization.maximizeRevenue_result,java.lang.String)
location: class model.thrift.Optimization.Client
[ERROR] /thrift/Optimization.java:[98,97] cannot find symbol
symbol : variable ___protocolFactory
location: model.thrift.Optimization.AsyncClient
[ERROR] /thrift/Optimization.java:[98,117] cannot find symbol
symbol : variable ___transport
location: class model.thrift.Optimization.AsyncClient
[ERROR] /thrift/Optimization.java:[99,10] cannot find symbol
symbol : variable ___currentMethod
location: class model.thrift.Optimization.AsyncClient
[ERROR] /thrift/Optimization.java:[100,6] cannot find symbol
symbol : variable ___manager
location: class thrift.Optimization.AsyncClient
[ERROR] /thrift/Optimization.java:[387,23] cannot find symbol
symbol : method getScheme()
location: class org.apache.thrift.protocol.TProtocol
[ERROR] /thrift/Optimization.java:[391,23] cannot find symbol
symbol : method getScheme()
location: class org.apache.thrift.protocol.TProtocol
[ERROR] /thrift/Optimization.java:[665,23] cannot find symbol
symbol : method getScheme()
location: class org.apache.thrift.protocol.TProtocol
[ERROR] /thrift/Optimization.java:[669,23] cannot find symbol
symbol : method getScheme()
-> mvn dependency:tree | grep -i thrift
[INFO] \- org.apache.thrift:libthrift:jar:0.8.0:compile
-> thrift -version java
Thrift version 0.8.0
私はこのスレッドを見つけましたが、推奨される解決策は私には機能しませんでした MavenThriftリポジトリ
また、コードの生成に使用されたjarと、上記のpomを使用してプルされたjarのチェックサムも実行しました。なぜこれらが異なるのか誰かが知っていますか
->md5sum /usr/local/lib/libthrift-0.8.0.jar
fff7102558cb0ab1c103b62752166ce8 /usr/local/lib/libthrift-0.8.0.jar
->md5sum ~/.m2/repository/org/apache/thrift/libthrift/0.8.0/libthrift-0.8.0.jar
d68695bb2406cb2ab5fbae6ff6e27d7e
/home/nipun/.m2/repository/org/apache/thrift/libthrift/0.8.0/libthrift-0.8.0.jar
どんな助け/洞察も大歓迎です。