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....@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.pol...@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@lists.opennebula.org >> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org >> >> > > _______________________________________________ > Users mailing list > Users@lists.opennebula.org > http://lists.opennebula.org/listinfo.cgi/users-opennebula.org > >
_______________________________________________ Users mailing list Users@lists.opennebula.org http://lists.opennebula.org/listinfo.cgi/users-opennebula.org