Riak Java client API

Pratik Kulkarni pratik1992 at icloud.com
Fri Oct 28 14:47:00 EDT 2016


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:




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20161028/a848f3a3/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2016-10-28 at 11.29.23 AM.png
Type: image/png
Size: 98161 bytes
Desc: not available
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20161028/a848f3a3/attachment.png>


More information about the riak-users mailing list