0

私はriakで働いています。Javaからアクセスしようとしています。コードは次のとおりです。

package eee.xxx;

import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakFactory;
import com.basho.riak.client.bucket.Bucket;

public class Main {

    /**
     * @param args
     * @throws RiakException 
     */
    public static void main(String[] args) throws RiakException {
        IRiakClient myClient = RiakFactory.httpClient("127.0.0.1");
        Bucket myBucket = myClient.fetchBucket("Pacan").execute(); 
    }

}

そしてコンパイル後、それはそのようなエラーをスローします:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONException
    at com.basho.riak.client.raw.http.HTTPClientAdapter.<init>(HTTPClientAdapter.java:85)
    at com.basho.riak.client.RiakFactory.httpClient(RiakFactory.java:144)
    at eee.xxx.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 3 more

これをどうやって解決するのか分かりません。助けてください!:-)

4

1 に答える 1

1

Riakにはサードパーティのライブラリの依存関係がいくつかあります。そのうちの1つは、欠落しているように見える標準のJSONライブラリです。コンパイル時と実行時にクラスパスで使用可能である必要があります。ここで見つけることができます。

約8つの依存関係があるため、依存関係を追加することで、Mavenにこれを管理させる方が簡単です。

<dependency>
    <groupId>com.basho.riak</groupId>
    <artifactId>riak-client</artifactId>
    <version>1.0.6</version>
</dependency>
于 2012-12-26T01:50:11.957 に答える