users@glassfish.java.net

Reflection in EAR project

From: <glassfish_at_javadesktop.org>
Date: Mon, 05 Jul 2010 06:53:34 PDT

Hello, i have a problem using reflexion in a ear project. The same project work fine in Glassfish 2, but when i deploy it in Glassfish 3 i get a ClassNotFoundException:




GRAVE: java.lang.ClassNotFoundException: ar.edu.unl.rectorado.ilitias.app.comitente.ControladorComitente
        at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:736)
        at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at ar.edu.unl.rectorado.unut.framework.aplicacion.ContenedorPrincipal.abrirVentana(ContenedorPrincipal.java:213)
        at ar.edu.unl.rectorado.unut.framework.aplicacion.menu.BarraMenu.actionPerformed(BarraMenu.java:114)
        at nextapp.echo.extras.app.menu.AbstractMenuComponent.fireActionPerformed(AbstractMenuComponent.java:174)
        at nextapp.echo.extras.app.menu.AbstractMenuComponent.doAction(AbstractMenuComponent.java:159)
        at nextapp.echo.extras.app.menu.AbstractMenuComponent.processInput(AbstractMenuComponent.java:202)
        at nextapp.echo.app.update.ClientUpdateManager.process(ClientUpdateManager.java:130)
        at nextapp.echo.app.update.UpdateManager.processClientUpdates(UpdateManager.java:92)
        at nextapp.echo.webcontainer.ComponentInputProcessor.process(ComponentInputProcessor.java:226)
        at nextapp.echo.webcontainer.ClientMessage.process(ClientMessage.java:194)
        at nextapp.echo.webcontainer.InputProcessor.process(InputProcessor.java:163)
        at nextapp.echo.webcontainer.Synchronization.process(Synchronization.java:121)
        at nextapp.echo.webcontainer.service.SynchronizeService.service(SynchronizeService.java:78)
        at nextapp.echo.webcontainer.WebContainerServlet.process(WebContainerServlet.java:432)
        at nextapp.echo.webcontainer.WebContainerServlet.doPost(WebContainerServlet.java:316)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)






Here is the code where i get the exception, it is in the war client




    /**
     * Abre una ventana en la sección inferior del panel.
     *
     * @param comando es el nombre de la ventana a abrir
     */
    @Override
    public void abrirVentana(final String comando) {
        Object objeto = null;
        try {
            [b]objeto = Class.forName(comando).newInstance();[/b]
            if (objeto instanceof CCWindowPane) {
                abrirVentana((CCWindowPane) objeto);
            }
            
        } catch (InstantiationException ex) {
            ex.printStackTrace();
            abrirVentana(
                    new VentanaMensaje(ex.getMessage(), VentanaMensaje.ERROR));

        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
            abrirVentana(
                    new VentanaMensaje(ex.getMessage(), VentanaMensaje.ERROR));

        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
            abrirVentana(
                    new VentanaMensaje(ex.getMessage(), VentanaMensaje.ERROR));
        }
    }



i think there is a difference in the classpath, but do not know why. Any suggest about it?

thanks to all in advance.

Luigi
[Message sent by forum member 'luis22737928']

http://forums.java.net/jive/thread.jspa?messageID=476792