[one-users] xmlrpc client

Ksenija Poljak ksenija.poljak at altus-it.hr
Fri Dec 9 03:33:27 PST 2011


Even when I use that API, I still get Unauthorized exception.
What is the proper way to form a session string that gets user (for start
oneadmin) authenticated and authorized in Java client so that I can test
other methods?
I use client function: Client client = new Client("session_string",
"server_url");

public *Client*(java.lang.String secret,
              java.lang.String endpoint)
       throws ClientConfigurationException
<http://opennebula.org/doc/3.0/oca/java/org/opennebula/client/ClientConfigurationException.html>



On Thu, Dec 8, 2011 at 5:16 PM, Prakhar Srivastava <prakhar.apj at gmail.com>wrote:

> Hi Ksenija,
> Why don't you simply use the Java OpenNebula Cloud API<http://opennebula.org/documentation:rel3.0:java> that
> is packaged with opennebula. If there is no specific scenario, its best to
> use them.
>
> Prakhar
>
> On Thu, Dec 8, 2011 at 3:23 PM, Ksenija Poljak <ksenija.poljak at altus-it.hr
> > wrote:
>
>> Hi, I'm using opennebula 3 and I'm trying to write an xmlrpc Java client.
>> I'm not able to connect my client to opennebula server.
>> I keep getting unauthorized exception:
>>
>> org.apache.xmlrpc.client.XmlRpcHttpTransportException: HTTP server
>> returned unexpected status: Unauthorized
>>
>> My testing program:
>>
>> package open.nebula.client;
>>
>>
>> import java.net.MalformedURLException;
>> import java.net.URL;
>>
>> import org.apache.xmlrpc.XmlRpcException;
>> import org.apache.xmlrpc.client.XmlRpcClient;
>> import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
>>
>> public class OpenNebulaClient{
>>  private XmlRpcClient client = new XmlRpcClient();;
>> private XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
>>  private String session =
>> "oneadmin:ffd775fdb8e47ebf5b68513843f31742f74118e8";
>>  public OpenNebulaClient(String server_url)
>> {
>> try{
>>  this.config.setServerURL(new URL(server_url));
>> this.client.setConfig(this.config);
>>  }catch(MalformedURLException e){
>> System.err.println(e);
>> }
>>  }
>>  public void getUserInfo(int id) throws XmlRpcException
>>  {
>> Object[] params = {session,id};
>> try {
>>             Object[] result = (Object[])this.client.execute("
>> one.user.info",params);
>>             if(!result[0].equals(null)) {
>>             boolean success = (Boolean)result[0];
>>             String str_res = (String)result[1];
>>             System.out.println("success="+success);
>>             System.out.println("result="+str_res);
>>             }else{
>>             System.out.println("success=0");
>>             }
>> }catch (XmlRpcException e) {
>> System.err.println(e);
>>  //e.printStackTrace();
>>         }
>> }
>>  public static void main(String[] args)
>> {
>> OpenNebulaClient on_client = new
>>
>>  OpenNebulaClient("http://server_ip:port/RPC2");
>> try{
>> on_client.getUserInfo(0);
>>  }catch(XmlRpcException xmlrpce){
>> System.err.println(xmlrpce);
>> }
>>  }
>> }
>>
>>
>> I'm confused becose when I look at examples on the web, there are methods
>> used as one.userinfo, and on opennebula official site they are listed in
>> form: one.user.info.
>> Session string I used consists of username:password that I get listed
>> with command: 'oneuser show 0' on opennebula server.
>> Client and opennebula server are on different machines.
>> I'm not sure what I do wrong. Any suggestions would be more than
>> helpfull. Tnx in advance.
>>
>> the full stackTrace of error:
>>
>> org.apache.xmlrpc.client.XmlRpcHttpTransportException: HTTP server
>> returned unexpected status: Unauthorized
>> at
>> org.apache.xmlrpc.client.XmlRpcSunHttpTransport.getInputStream(XmlRpcSunHttpTransport.java:94)
>>  at
>> org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:152)
>> at
>> org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
>>  at
>> org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
>> at
>> org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
>>  at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
>> at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:137)
>>  at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:126)
>> at
>> open.nebula.client.OpenNebulaClient.getUserInfo(OpenNebulaClient.java:30)
>>  at open.nebula.client.OpenNebulaClient.main(OpenNebulaClient.java:49)
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opennebula.org
>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>
>>
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20111209/c92920ef/attachment-0002.htm>


More information about the Users mailing list