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.