Mail Archive Home | exoplatform List | April 2008 Index
| <-- Date Index --> | <-- Thread Index --> |
Benjamin,
Well in the test case I mention, you simply go to the webapp home page
in your browser. Is this normal behavior ?
In the original problem we mention the context is a bit more complex.
There is a webapp1 that calls webapp2 by XML-RPC on HTTP. This
webapp2 calls a component that is a jar file in the tomcat lib
directory. This component calls the JCR to store some files.
Don't you think we should try and get the filter to work correctly in
a simple webapp first ? I understand there are probably configuration
or initialization or other problems in our code, but if we can't get
it to work in a simple controlled environment then I feel it will even
more complicated in our deployment setup.
Thanks a lot for your help Benjamin, I know you are a busy busy guy !!!
Luis
On Wed, Apr 9, 2008 at 7:47 AM, <benjamin.mestrallet@xxxxxxxxx> wrote:
> Hi luis
>
> The filter itself has no problem
>
> The way it is used is the problem, so we need to know how you use it from
> your application, in other words how and from where do you call the http
> request
> ---- Envoyé avec BlackBerry(R) d'Orange ----
>
>
>
> -----Original Message-----
> From: "Luis Arias" <kaaloo@xxxxxxxxx>
>
> Date: Wed, 9 Apr 2008 07:45:20
> To:"Benjamin Mestrallet" <benjamin.mestrallet@xxxxxxxxxxxxxxx>
> Cc:exoplatform@xxxxxxx, michael.morello@xxxxxxxxx, adrien.pol@xxxxxxxxx,
> bernard.evain@xxxxxxxxxxxx, philippe.drix@xxxxxxxxxxxx
> Subject: Re: [exoplatform] Re: Problem instanciating a component via
> reflection
>
>
> I have a test case for the filter problem. Simply use maven and
> create a new webapp using the webapp archetype. Then modify the
> web.xml file to include the filters you suggested:
>
> <!DOCTYPE web-app PUBLIC
> "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> "http://java.sun.com/dtd/web-app_2_3.dtd" >
>
> <web-app>
> <display-name>Sample Exo Webapp</display-name>
>
> <filter>
> <filter-name>ThreadLocalSessionProviderInitializedFilter</filter-name>
>
> <filter-class>org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter</filter-class>
> </filter>
>
> <filter>
> <filter-name>PortalContainerInitializedFilter</filter-name>
>
> <filter-class>org.exoplatform.frameworks.jcr.web.PortalContainerInitializedFilter</filter-class>
> </filter>
>
> <filter-mapping>
> <filter-name>ThreadLocalSessionProviderInitializedFilter</filter-name>
> <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> <filter-mapping>
> <filter-name>PortalContainerInitializedFilter</filter-name>
> <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> <listener>
>
> <listener-class>org.exoplatform.portal.application.PortalSessionListener</listener-class>
> </listener>
>
> </web-app>
>
> Deploy the webapp in tomcat, launch tomcat, try to bring up the app
> home page in your browser. I get the same error as we are
> experiencing in our more complicated setup:
>
> Apr 9, 2008 7:40:31 AM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet jsp threw exception
> java.lang.NullPointerException
> at
> org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter.doFilter(ThreadLocalSessionProviderInitializedFilter.java:104)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
> at java.lang.Thread.run(Thread.java:619)
> Apr 9, 2008 7:42:26 AM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet jsp threw exception
> javax.servlet.ServletException: Could not initialize
> PortalContainer.Current ExoContainer is:
> org.exoplatform.container.RootContainer@889c4e
> at
> org.exoplatform.frameworks.jcr.web.PortalContainerInitializedFilter.doFilter(PortalContainerInitializedFilter.java:80)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
> at java.lang.Thread.run(Thread.java:619)
>
> This happens even after having run the portal in webos and classic
> mode. Does this work in your installation ?
>
> Luis
>
> On Tue, Apr 8, 2008 at 7:26 PM, Benjamin Mestrallet
> <benjamin.mestrallet@xxxxxxxxxxxxxxx> wrote:
> > Could you describe with more details what your applications does exactly
> and
> > in which context that filter code is called?
> >
> > Cheers
> >
> >
> >
> > On Tue, Apr 8, 2008 at 5:46 PM, Luis Arias <kaaloo@xxxxxxxxx> wrote:
> >
> > > Benjamin,
> > >
> > > The webapp web.xml was modified to use the filters you pointed out
> > > below, using /* as the filter mapping.
> > >
> > > We are getting the following stacktrace in the filter:
> > >
> > >
> > > org.apache.catalina.core.StandardWrapperValve invoke
> > > GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
> > > javax.servlet.ServletException: Could not initialize
> > > PortalContainer.Current ExoContainer is:
> > > org.exoplatform.container.RootContainer@1862525
> > > at
> >
> org.exoplatform.frameworks.jcr.web.PortalContainerInitializedFilter.doFilter(PortalContainerInitializedFilter.java:80)
> > > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
> > > at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> > > at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> > > at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> > > at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
> > > at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> > > at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
> > > at
> > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
> > > at java.lang.Thread.run(Thread.java:619)
> > >
> > > Are there any other configuration items that need to be addressed in
> > > the web.xml or is there some java code that needs to be written to
> > > correctly initialize the webapp in the exo environment ?
> > >
> > > Please let us know if any other code or configuration items are useful
> > > to you so Michael can send them to you.
> > >
> > > Thanks again,
> > >
> > > Luis
> > > On Tue, Apr 8, 2008 at 3:42 PM, Benjamin Mestrallet
> > > <benjamin.mestrallet@xxxxxxxxxxxxxxx> wrote:
> > >
> > >
> > >
> > > > How does the webapp is called, I mean that code?
> > > >
> > > > as a portlet (aka groing through the portal URL) or independently
> (for
> > > > example in an IFrame)
> > > >
> > > > If it is an IFrame then you surely need to have a filer in your
> webapp
> > that
> > > > will setup the PortalContainer current instance in the threadlocal of
> > your
> > > > request (from the iframe to your webapp)
> > > >
> > > > The filter that may be needed in your web.xml are:
> > > >
> > > > <filter>
> > > > <filter-name>PortalContainerInitializedFilter</filter-name>
> > > >
> > > >
> >
> <filter-class>org.exoplatform.frameworks.jcr.web.PortalContainerInitializedFilter</filter-class>
> > > > </filter>
> > > >
> > > > <filter>
> > > >
> > <filter-name>ThreadLocalSessionProviderInitializedFilter</filter-name>
> > > >
> > > >
> >
> <filter-class>org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter</filter-class>
> > > > </filter>
> > > >
> > > > and then need to correctly set up the filter mapping like for
> instance:
> > > >
> > > > <filter-mapping>
> > > > <filter-name>PortalContainerInitializedFilter</filter-name>
> > > > <url-pattern>/rest/*</url-pattern>
> > > > </filter-mapping>
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Apr 8, 2008 at 12:38 PM, Luis Arias <kaaloo@xxxxxxxxx> wrote:
> > > > >
> > > > >
> > > > >
> > > > > Hi,
> > > > >
> > > > > I'm reporting this problem for a friend Michael who has been having
> > > > > some problems recently instanciating a component from a webapp
> running
> > > > > on an exo-tomcat installation (latest community build).
> > > > >
> > > > > The component passes unit tests run against the
> StandaloneContainer,
> > > > > but fails when instanciated from the webapp.
> > > > >
> > > > > [07 avr. 17:24:12] DEBUG (class Archiver in thread
> > > > > graphane.diffusion.listener#0) - calling
> > > > > Archiver.diffuse(Hashtable<String, String> argsHashTable,
> java.io.File
> > > > > file)
> > > > > java.lang.Exception: PortalContainer.getInstance() returns null
> > > > > at com.docxa.corus.jcr.Archiver.getSession(Archiver.java:59)
> > > > > at com.docxa.corus.jcr.Archiver.diffuse(Archiver.java:77)
> > > > > at
> > > >
> >
> com.graphane.core.diffusion.listener.ListenerDiffusionComponent.dispatchDocuments(ListenerDiffusionComponent.java:85)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.callDispatchDocuments(ThreadProcessor.java:63)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.processDiffusion(ThreadProcessor.java:99)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.run(ThreadProcessor.java:222)
> > > > > [07 avr. 17:24:12] ERROR (class Archiver in thread
> > > > > graphane.diffusion.listener#0) - Unable to diffuse to JCR
> > > > > java.lang.Exception: PortalContainer.getInstance() returns null
> > > > > at com.docxa.corus.jcr.Archiver.getSession(Archiver.java:59)
> > > > > at com.docxa.corus.jcr.Archiver.diffuse(Archiver.java:77)
> > > > > at
> > > >
> >
> com.graphane.core.diffusion.listener.ListenerDiffusionComponent.dispatchDocuments(ListenerDiffusionComponent.java:85)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.callDispatchDocuments(ThreadProcessor.java:63)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.processDiffusion(ThreadProcessor.java:99)
> > > > > at
> > > >
> >
> com.graphane.satellites.diffusion.threadstools.ThreadProcessor.run(ThreadProcessor.java:222)
> > > > >
> > > > >
> > > > > The code that instanciates the component in the webapp is the
> > following:
> > > > >
> > > > > Class < DiffusionListenerInterface > classToLoad =
> > > > > (Class < DiffusionListenerInterface > )
> > > > > Class.forName(classNameToRegister);
> > > > > Constructor < DiffusionListenerInterface > constructor =
> > > > > classToLoad.getConstructor();
> > > > > DiffusionListenerInterface diffusionListenerToRegister =
> > > > > constructor.newInstance();
> > > > >
> > > > >
> > > > > The call to PortalContainer.getInstance() that fails in the
> component
> > > > > is the following:
> > > > >
> > > > > private Session getSession() throws RepositoryException
> > > > > {
> > > > > RepositoryService repoService =
> > > > >
> > > >
> >
> (RepositoryService)PortalContainer.getInstance().getComponentInstanceOfType(RepositoryService.class);
> > > > > repository = repoService.getCurrentRepository();
> > > > > String wsName =
> > > > repository.getConfiguration().getDefaultWorkspaceName();
> > > > > return
> > > > repository.getSystemSession(wsName).getRootNode().getSession();
> > > > > }
> > > > >
> > > > > We are stumped as to why this is happening, maybe some
> configuration
> > > > > files missing in the webapp ? Is there a better way to obtain a
> JCR
> > > > > Session for the component ? Is there a better way to instanciate
> the
> > > > > component from the webapp ?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > --
> > > > > Luis Arias
> > > > > +33 6 14 20 87 93
> > > > > skype : kaaloo
> > > > >
> > > > >
> > > > > --
> > > > > You receive this message as a subscriber of the exoplatform@xxxxxxx
> > > > mailing list.
> > > > > To unsubscribe: mailto:exoplatform-unsubscribe@xxxxxxx
> > > > > For general help: mailto:sympa@xxxxxxx?subject=help
> > > > > OW2 mailing lists service home page: http://www.ow2.org/wws
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > >
> > >
> > >
> > > Luis Arias
> > > +33 6 14 20 87 93
> > > skype : kaaloo
> > >
> > >
> > > --
> > > You receive this message as a subscriber of the exoplatform@xxxxxxx
> > mailing list.
> > > To unsubscribe: mailto:exoplatform-unsubscribe@xxxxxxx
> > > For general help: mailto:sympa@xxxxxxx?subject=help
> > > OW2 mailing lists service home page: http://www.ow2.org/wws
> > >
> > >
> >
> >
>
>
>
> --
> Luis Arias
> +33 6 14 20 87 93
> skype : kaaloo
>
--
Luis Arias
+33 6 14 20 87 93
skype : kaaloo
| <-- Date Index --> | <-- Thread Index --> |
Powered by MHonArc.
Copyright © 2006-2007, OW2 Consortium | contact | webmaster.