basho-labs / riakcs-java-client

Java client for RiakCS and Amazon S3
Apache License 2.0
13 stars 14 forks source link

I got an error when I try to get object form a bucket #1

Open MacKittipat opened 11 years ago

MacKittipat commented 11 years ago

I try to run this code in my local machine but I got an error.

RiakCSClient riakCSClient = new RiakCSClient(
    "MY_ACCESS_KEY",
    "MY_SECRET_KEY",
    "127.0.0.1:8080",
     false);
JSONObject jsonObject = riakCSClient.getObject("test-bucket", "useravatar.png");
System.out.println(jsonObject.toString());

This is an error

Exception in thread "main" com.basho.riakcs.client.api.RiakCSException: java.net.UnknownHostException: test-bucket.127.0.0.1
    at com.basho.riakcs.client.impl.RiakCSClientImpl.getObject(RiakCSClientImpl.java:414)
    at com.basho.riakcs.client.impl.RiakCSClientImpl.getObject(RiakCSClientImpl.java:380)
    at com.basho.riakcs.client.api.RiakCSClient.getObject(RiakCSClient.java:156)
    at playriakcs.Playriakcs.main(Playriakcs.java:15)
Caused by: java.net.UnknownHostException: test-bucket.127.0.0.1
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
MacKittipat commented 11 years ago

I try modify riakcs-java-client code in CommunicationLayer.generateCSUrl() From

if (isValidDnsName(bucketName))
{
    hostname= bucketName + "." + csEndpoint;
}

To

if (isValidDnsName(bucketName))
{
    hostname= csEndpoint + "/" + bucketName;
}

And it works !!! So I can not use endpoint like this "bucketname,endpoinurl" but "endpoinurl/bucketname" works. I don't want to modify the lib code but I still don't know how to configure my machine to support the endpoint like "bucketname,endpoinurl"

zhongcy commented 10 years ago

@MacKittipat Hi MacKittipat , I get the same error like yours. I think its different version .

MacKittipat commented 10 years ago

@zhongcy : I recommend you to use aws-java-sdk instead. (http://aws.amazon.com/sdk-for-java) aws-java-sdk compatibility with riakcs.