2 Replies Latest reply: Mar 15, 2011 2:59 AM by Willem Noorduin RSS

rhq client beginners question

Willem Noorduin Newbie

I have installed JBoss-Operation Network (JON 2.4.0) on a server, and the accompanying agents on the JBoss-AS nodes. Setup was Okey, and we are receiving data allright. My question is relly about rhq-remote-client. When I first test connectivity, I get:

 

wnoordui@192.168.0.1:~/rhq/rhq-remoting-cli-3.0.0.GA/scripts$ ./../bin/rhq-cli.sh -u rhqadmin -p rhqadmin

RHQ - RHQ Enterprise Remote CLI 3.0.0.GA

Remote server version is: 3.0.1.GA(81e26be20d)

Login successful

rhqadmin@localhost:7080$

 

So this is okay, when I execute the following script:

 

var criteria = new org.rhq.core.domain.criteria.ResourceCriteria();

var resource = new org.rhq.core.domain.resource.Resource();

 

criteria.addFilterResourceTypeName('JBossAS Server')

criteria.fetchChildResources(true)

 

resources = ResourceManager.findResourcesByCriteria(criteria)

resource = resources.get(0)

 

if (resource.childResources == null) print('no child resources'); else pretty.print(resource.childResources);

 

 

We get:

 

rhqadmin@localhost:7080$ exec -f /home/wnoordui/rhq/rhq-remoting-cli-3.0.0.GA/scripts/associations.js

org.jboss.remoting.CannotConnectException: Can not connect http client invoker. cannot assign instance of java.lang.String to field org.rhq.core.domain.resource.Resource.modifiedBy of type org.rhq.core.domain.auth.Subject in instance of org.rhq.core.domain.resource.Resource. Response: OK/200.

        at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:348)

        at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:137)

        at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)

        at org.jboss.remoting.Client.invoke(Client.java:1634)

        at org.jboss.remoting.Client.invoke(Client.java:548)

        at org.jboss.remoting.Client.invoke(Client.java:536)

        at org.rhq.enterprise.client.RemoteClientProxy.invoke(RemoteClientProxy.java:201)

        at $Proxy18.findResourcesByCriteria(Unknown Source)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

....

 

JBoss-Operation Network is installed as out-of-the-box. The only thing I have changed is:

 

root:/opt/jon-server/jbossas/server/default/conf# vim jboss-service.xml

 

 

 

   And uncomment the attrbute InvokerLocator tag  I did found this by googling). Still not working though. I am just beginning with JON and remoting Client, so I think this is just me. Can anyone say how to configure JON correclty to handle my requsts ?

  • 1. rhq client beginners question
    jay shaughnessy Apprentice

    Hi,

     

    There are, I think a few issues with the JavaScript in your script.  I'm not sure exactly what's causing the issue but the following script seems to be your intent, and worked for me.  If you have further issues I'd suggest opening up a JON support case.

     

    login rhqadmin rhqadmin

    var criteria = new ResourceCriteria()

    criteria.addFilterResourceTypeName('JBossAS Server')

    criteria.fetchChildResources(true)

    var resources = ResourceManager.findResourcesByCriteria(criteria)

    var resource = resources.get(0)

    if ( resource.getChildResources().isEmpty() ) print('no children'); else pretty.print(resource.getChildResources());

     

    Note the use of method calls to access information. Also, you had some issues in variable declaration (should have been 'var 'resources...' and also there is no need to initialize 'var resource' to a new Resource.

     

    hope this helps

  • 2. rhq client beginners question
    Willem Noorduin Newbie

    Okay, I am getting output now. But when I put thoese command in a file (say /tmp/vies.js) and I add the rhq-cli.sh directory to the PATH variable, I get:

     

    root@zeus:/tmp# rhq-cli.sh -f /tmp/view.js

    Exception in thread "main" org.rhq.enterprise.client.script.CLIScriptException: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: missing ; before statement (<Unknown source>#1) in <Unknown source> at line number 1

            at org.rhq.enterprise.client.commands.ScriptCommand.executeScriptFile(ScriptCommand.java:323)

            at org.rhq.enterprise.client.commands.ScriptCommand.execute(ScriptCommand.java:124)

            at org.rhq.enterprise.client.ClientMain.processArguments(ClientMain.java:505)

            at org.rhq.enterprise.client.ClientMain.main(ClientMain.java:106)

    Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: missing ; before statement (<Unknown source>#1) in <Unknown source> at line number 1

            at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110)

            at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:232)

            at org.rhq.enterprise.client.commands.ScriptCommand.executeScriptFile(ScriptCommand.java:311)

            ... 3 more

     

    and (without login rhqadmin rhqadmin, which shouldn't be in the js file, but as parameters to rhq-cli.sh I guess):

     

    root@zeus:/tmp# rhq-cli.sh -u rhqadmin -p rhqadmin -f view.js

    Remote server version is: 3.0.0.GA(8fb6059)

    Login successful

    view.js (No such file or directory)

     

    while:

     

    root@zeus:/tmp# ls view.js

    -rw-r--r-- 1 root root 406 Mar 15 07:30 view.js

     

    I don't know why this is happening, but this could be a SELinux setting. Giving an absolute path, we get:

     

    root@zeus:/tmp# rhq-cli.sh -u rhqadmin -p rhqadmin -f /tmp/view.js

    Remote server version is: 3.0.0.GA(8fb6059)

    Login successful

     

    and:

     

     

    The following questions arises:

     

    1. Why must I put in the absolute path to my script to get rid of the no such file error ? (probably SELinux)
    2. Why don't I see output ?
    3. What is the correct way to source a js script with rhq-cli.sh (such that I can use that in another shell or perl-scvript ?