Riak Java client API

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Riak Java client API

Pratik Kulkarni
Hi All, 

I am working on a distributed file storage system using the Java Netty framework. For this purpose i have Raik KV as an in memory  storage solution. 
Following jar dependencies are present in my build path : 

jackson-all-1.8.5.jar
netty-all-4.0.15.Final.jar
slf4j-api-1.7.2.jar
slf4j-simple-1.7.2.jar
protobuf-java-2.6.1.jar
json-20160212.jar
riak-client-2.0.5.jar

When i try initiate connection with the riak node. The connection attempt is successful but when i try to store the object in Riak KV. I keep getting the following NoClassDefFoundError. I am not sure why these errors arrive though i have included all the jars. Do we require apart from riak-client X.X jar any more dependencies. As per the terminal output I tried to add the dependencies by downloading the jars. But it just keeps giving me new dependencies error every time.  Kindly help ?

Please see the riak client code in java to store the file object 


package gash.router.inmemory;

import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.kv.DeleteValue;
import com.basho.riak.client.api.commands.kv.FetchValue;
import com.basho.riak.client.api.commands.kv.StoreValue;
import com.basho.riak.client.core.RiakCluster;
import com.basho.riak.client.core.RiakNode;
import com.basho.riak.client.core.query.Location;
import com.basho.riak.client.core.query.Namespace;
import com.basho.riak.client.core.query.RiakObject;
import com.basho.riak.client.core.util.BinaryValue;

import java.net.UnknownHostException;

public class RiakClientHandler {
private static RiakCluster setUpCluster() throws UnknownHostException{
// This example will use only one node listening on localhost:8098--default config
        
RiakNode node = new RiakNode.Builder()
                .withRemoteAddress("127.0.0.1")
                .withRemotePort(8098)
                .build();
     // This cluster object takes our one node as an argument
        RiakCluster cluster = new RiakCluster.Builder(node)
                .build();

        // The cluster must be started to work, otherwise you will see errors
        cluster.start();

        return cluster;
}
private static class RiakFile{
public String filename;
public byte[] byteData;
}
public static void saveFile(String filename,byte[] byteData)
{
try{
    System.out.println("Inside Riak handler");
    RiakCluster cluster = setUpCluster();
            RiakClient client = new RiakClient(cluster);
            RiakFile newFile = createRiakFile(filename, byteData); 
            System.out.println("Riak file created");
            Namespace fileBucket = new Namespace("files");
            Location fileLocation = new Location(fileBucket, filename);
            StoreValue storeFile = new StoreValue.Builder(newFile).withLocation(fileLocation).build();
            client.execute(storeFile);  
            System.out.println("File saved to riak ");
            cluster.shutdown();
}
catch(Exception e){
e.printStackTrace();
}
}
private static RiakFile createRiakFile(String filename, byte[] byteData)
{
RiakFile file=new RiakFile();
file.filename=filename;
file.byteData=byteData;
return file;
}

}


The terminal Output error:





_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak Java client API

AJAX DoneBy Jack
Hi Pratik,

From exception msg you are missing joda time jar, download one and put in your classpath.
If you use maven it will download the dependency for you automatically.

Hope this help.
Ajax 

On Friday, 28 October 2016, Pratik Kulkarni <[hidden email]> wrote:
Hi All, 

I am working on a distributed file storage system using the Java Netty framework. For this purpose i have Raik KV as an in memory  storage solution. 
Following jar dependencies are present in my build path : 

jackson-all-1.8.5.jar
netty-all-4.0.15.Final.jar
slf4j-api-1.7.2.jar
slf4j-simple-1.7.2.jar
protobuf-java-2.6.1.jar
json-20160212.jar
riak-client-2.0.5.jar

When i try initiate connection with the riak node. The connection attempt is successful but when i try to store the object in Riak KV. I keep getting the following NoClassDefFoundError. I am not sure why these errors arrive though i have included all the jars. Do we require apart from riak-client X.X jar any more dependencies. As per the terminal output I tried to add the dependencies by downloading the jars. But it just keeps giving me new dependencies error every time.  Kindly help ?

Please see the riak client code in java to store the file object 


package gash.router.inmemory;

import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.kv.DeleteValue;
import com.basho.riak.client.api.commands.kv.FetchValue;
import com.basho.riak.client.api.commands.kv.StoreValue;
import com.basho.riak.client.core.RiakCluster;
import com.basho.riak.client.core.RiakNode;
import com.basho.riak.client.core.query.Location;
import com.basho.riak.client.core.query.Namespace;
import com.basho.riak.client.core.query.RiakObject;
import com.basho.riak.client.core.util.BinaryValue;

import java.net.UnknownHostException;

public class RiakClientHandler {
private static RiakCluster setUpCluster() throws UnknownHostException{
// This example will use only one node listening on localhost:8098--default config
        
RiakNode node = new RiakNode.Builder()
                .withRemoteAddress("127.0.0.1")
                .withRemotePort(8098)
                .build();
     // This cluster object takes our one node as an argument
        RiakCluster cluster = new RiakCluster.Builder(node)
                .build();

        // The cluster must be started to work, otherwise you will see errors
        cluster.start();

        return cluster;
}
private static class RiakFile{
public String filename;
public byte[] byteData;
}
public static void saveFile(String filename,byte[] byteData)
{
try{
    System.out.println("Inside Riak handler");
    RiakCluster cluster = setUpCluster();
            RiakClient client = new RiakClient(cluster);
            RiakFile newFile = createRiakFile(filename, byteData); 
            System.out.println("Riak file created");
            Namespace fileBucket = new Namespace("files");
            Location fileLocation = new Location(fileBucket, filename);
            StoreValue storeFile = new StoreValue.Builder(newFile).withLocation(fileLocation).build();
            client.execute(storeFile);  
            System.out.println("File saved to riak ");
            cluster.shutdown();
}
catch(Exception e){
e.printStackTrace();
}
}
private static RiakFile createRiakFile(String filename, byte[] byteData)
{
RiakFile file=new RiakFile();
file.filename=filename;
file.byteData=byteData;
return file;
}

}


The terminal Output error:





_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak Java client API

Guido Medina-3

If you manage your project with a dependency management tool like Maven or Gradle it will download the missing dependency for you, in your case you are missing joda-time which you can download from:

http://search.maven.org/#artifactdetails%7Cjoda-time%7Cjoda-time%7C2.9.4%7Cjar

Hope that helps,

Guido.

On 29/10/16 18:45, AJAX DoneBy Jack wrote:
Hi Pratik,

From exception msg you are missing joda time jar, download one and put in your classpath.
If you use maven it will download the dependency for you automatically.

Hope this help.
Ajax 

On Friday, 28 October 2016, Pratik Kulkarni <[hidden email]> wrote:
Hi All, 

I am working on a distributed file storage system using the Java Netty framework. For this purpose i have Raik KV as an in memory  storage solution. 
Following jar dependencies are present in my build path : 

jackson-all-1.8.5.jar
netty-all-4.0.15.Final.jar
slf4j-api-1.7.2.jar
slf4j-simple-1.7.2.jar
protobuf-java-2.6.1.jar
json-20160212.jar
riak-client-2.0.5.jar

When i try initiate connection with the riak node. The connection attempt is successful but when i try to store the object in Riak KV. I keep getting the following NoClassDefFoundError. I am not sure why these errors arrive though i have included all the jars. Do we require apart from riak-client X.X jar any more dependencies. As per the terminal output I tried to add the dependencies by downloading the jars. But it just keeps giving me new dependencies error every time.  Kindly help ?

Please see the riak client code in java to store the file object 


package gash.router.inmemory;

import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.kv.DeleteValue;
import com.basho.riak.client.api.commands.kv.FetchValue;
import com.basho.riak.client.api.commands.kv.StoreValue;
import com.basho.riak.client.core.RiakCluster;
import com.basho.riak.client.core.RiakNode;
import com.basho.riak.client.core.query.Location;
import com.basho.riak.client.core.query.Namespace;
import com.basho.riak.client.core.query.RiakObject;
import com.basho.riak.client.core.util.BinaryValue;

import java.net.UnknownHostException;

public class RiakClientHandler {
private static RiakCluster setUpCluster() throws UnknownHostException{
// This example will use only one node listening on localhost:8098--default config
        
RiakNode node = new RiakNode.Builder()
                .withRemoteAddress("127.0.0.1")
                .withRemotePort(8098)
                .build();
     // This cluster object takes our one node as an argument
        RiakCluster cluster = new RiakCluster.Builder(node)
                .build();

        // The cluster must be started to work, otherwise you will see errors
        cluster.start();

        return cluster;
}
private static class RiakFile{
public String filename;
public byte[] byteData;
}
public static void saveFile(String filename,byte[] byteData)
{
try{
    System.out.println("Inside Riak handler");
    RiakCluster cluster = setUpCluster();
            RiakClient client = new RiakClient(cluster);
            RiakFile newFile = createRiakFile(filename, byteData); 
            System.out.println("Riak file created");
            Namespace fileBucket = new Namespace("files");
            Location fileLocation = new Location(fileBucket, filename);
            StoreValue storeFile = new StoreValue.Builder(newFile).withLocation(fileLocation).build();
            client.execute(storeFile);  
            System.out.println("File saved to riak ");
            cluster.shutdown();
}
catch(Exception e){
e.printStackTrace();
}
}
private static RiakFile createRiakFile(String filename, byte[] byteData)
{
RiakFile file=new RiakFile();
file.filename=filename;
file.byteData=byteData;
return file;
}

}


The terminal Output error:






_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com