Guys,
I am still struggling to get the UI as I would like to, so I didn’t have
time to invest at the server side of the new TomEE UI. I would appreciate a
little help on that. :O)
I have to have servlets returning JSON strings. Basically I need servlets
for each of the current TomEE panels: “JNDI Namespace Browser”, “Enterprise
JavaBeans Viewer”, “Object Invoker” and “Class Viewer”.

“JNDI Namespace Browser”
This servlet receives one parameter: “path”.  For example:

   - “http://localhost:8080/tomee/ws/viewjndi?path=” would return (1).
   - “http://localhost:8080/tomee/ws/viewjndi?path=openejb” would return
   (2).


“Enterprise JavaBeans Viewer”
This servlet receives one parameter: “path”.  For example:

   - 
“http://localhost:8080/tomee/ws/viewbean?path=openejb/DeployerBusinessRemote”
would return “{items:[
   *<list of key-value pairs of what we should show for it… check the file
   viewejb.jsp, line 166, to see what we should show>*]}”.


“Class Viewer”
This servlet receives one parameter: “class”.  For example:

   - 
“http://localhost:8080/tomee/ws/viewclass?class=org.apache.openejb.assembler.DeployerEjb”
would return (3).


“Object Invoker”
This servlet has tow versions: "GET" and "POST".  For example:

   - GET - “
   
http://localhost:8080/tomee/ws/beaninvoker?path=openejb/DeployerBusinessRemote”
   would return an element with the same structure as (3).
   - POST - “
   
http://localhost:8080/tomee/ws/beaninvoker?path=openejb/DeployerBusinessRemote”
   with extra "post" parameters -> method name and method parameters values
   list. It would return the something like (4). If the execution of the
   method throws and exception, just let the exception reach the JS side
   (normal servlet flow). I will manage the exceptions at the client side.


// (1)*******************************************************************

{
    items: [{
        name: ‘.’,
        type: ‘class’,
        path: ‘java.lang.String’
    }, {
        name: ‘openejb’,
        type: ‘context’,
        path: ‘openejb’
    }, {
        name: ‘MEJB’,
        type: ‘bean’,
        path: ‘MEJB’
    }]
}

// (2)*******************************************************************

{
    items: [{
        name: ‘ConfigurationInfoBusinessRemote’,
        type: ‘bean’,
        path: ‘openejb / ConfigurationInfoBusinessRemote’
    }, {
        name: ‘DeployerBusinessRemote’,
        type: ‘bean’,
        path: ‘openejb / DeployerBusinessRemote’
    }]
}

// (3)*******************************************************************

{
    'items': [
        {
            'returnType': 'org.apache.openejb.assembler.classic.AppInfo',
            'methodName': 'deploy',
            'parameterTypes': ['java.lang.String'],
            'throws': ['org.apache.openejb.OpenEJBException']
        },
        {
            'returnType': 'org.apache.openejb.assembler.classic.AppInfo',
            'methodName': 'deploy',
            'parameterTypes': ['java.util.Properties'],
            'throws': ['org.apache.openejb.OpenEJBException']
        },
        {
            'returnType': 'org.apache.openejb.assembler.classic.AppInfo',
            'methodName': 'deploy',
            'parameterTypes': ['java.lang.String', 'java.util.Properties'],
            'throws': ['org.apache.openejb.OpenEJBException']
        },
        {
            'returnType': null,
            'methodName': 'undeploy',
            'parameterTypes': ['java.lang.String'],
            'throws': ['org.apache.openejb.UndeployException',
'org.apache.openejb.NoSuchApplicationException']
        }
.
.
.
    ]
}

// (4)*******************************************************************

{
    'id': 'java.lang.String@1517688671',
    'class': 'java.lang.String',
    'toString':
'proxy=org.apache.openejb.assembler.Deployer;deployment=openejb/Deployer;...'
}

******************************************************************************************

There is something already implemented, so you can use it as example of how
return json strings from regular java Map objects. Check the
"JndiServlet.java" class.

Is anyone available for a little help? :O)

[]s,
Thiago.

Reply via email to