pankaj gajjar | 6 Feb 2011 10:07
Picon
Gravatar

The cocoon protocol can not be used outside an environment.

Hello Cocoon Users,

I am facing one issue with integration of cocoon pipeline and CocoonPipelineCronJob scheduler.

My cocoon.xconf snap code as below
... 
<trigger name="pipeline-writetest"
target="org.apache.cocoon.components.cron.CronJob/writetimecron"
concurrent-runs="false">
<cron>10 * * ? * *</cron>
</trigger> 
</triggers>
<component role="org.apache.cocoon.components.cron.CronJob/writetimecron"
class="org.apache.cocoon.components.cron.CocoonPipelineCronJob"
logger="cron.writetimecron">
        <sleep>10</sleep>
<pipeline>writetime</pipeline>
</component>
and my pipeline configure in sitemap.xmap as below
<map:pipeline internal-only="false">
<map:match pattern="writetime">
.....<!-- all generator,transformer and serialier code ..-->
</map:match>
</map:pipeline>

> Information Tomcat:
> apache-tomcat-6.0.30 Cocoon : 2.1 and
> my pipeline is working well if i
> accessing it externally ..

**but if i am calling this pipeline from my cronjob then i am getting below error in cocoon.log**
INFO  (2011-02-06) 12:54.10:018 [cron] (Unknown-URI) Unknown-Thread/QuartzJobExecutor: Executing cron job named 'pipeline-writetest'
ERROR (2011-02-06) 12:54.10:019 [cron] (Unknown-URI) Unknown-Thread/QuartzJobExecutor: Cron job name 'pipeline-writetest' died.
java.net.MalformedURLException: The cocoon protocol can not be used outside an environment.
at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:119)
at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:65)
at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
at org.apache.cocoon.components.cron.CocoonPipelineCronJob.execute(CocoonPipelineCronJob.java:68)
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 org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:143)
at $Proxy6.execute(Unknown Source)
at org.apache.cocoon.components.cron.QuartzJobExecutor.execute(QuartzJobExecutor.java:103)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)

Please do let me know if you face same issue ago or you are knowing solution of this .

Regards
Pankaj
Grégory Roche | 6 Feb 2011 18:26

repeater and value of a widget list

I have my outline with the attribute "state" :

<?xml version="1.0" encoding="UTF-8"?>

<opml version="2.0"><body>

   <outline id="1" state="available" xmlUrl="http://www.les-croiseurs-daquitaine.fr/rss.xml"/> 

</body></opml>

... my form definition :

<fd:repeater id="outlines">

  <fd:widgets> ...

    <fd:field id="state">
        <fd:label><i18n:text>feedsLabelState</i18n:text><i18n:text>:</i18n:text></fd:label>          
        <fd:datatype base="string"/>
        <fd:selection-list src="cocoon:/selectionList/feedStates"/>

</fd:field>    

 ... </fd:widgets>

</fd:repeater>

The pipeline of URI cocoon:/selectionList/feedStates use the file :

<x:states object="feed">
  <x:state>unavailable</x:state>
  <x:state>available</x:state>
  <x:state>complete</x:state> 
  <x:state>check</x:state>  
  <x:state>offline</x:state>     
  <x:state>online</x:state>  
</x:states>

I'm looking for a method for my widgets lists "state" take the value of opml/body/outlin/ <at> statein my repeater.

Have you got an idea ?

Grégory Roche

Gabriel Gruber | 6 Feb 2011 22:02
Picon

AUTO: Gabriel Gruber/Workflow is out of office. (returning Mon 14.02.2011)


I am out of the office from Sat 05.02.2011 until Mon 14.02.2011.

Ich bin bis zum 13.2.2011 auf Urlaub und ab 14.2.2011 wieder für Sie
erreichbar. Bei technischen Fragen zum System Webdesk wenden Sie sich bitte
vertrauensvoll an Hrn. Wurm oder Hrn. Stastny. Bei Fragen zu laufenden
Projekten wenden Sie sich bitte an Hrn. Stastny!

mit freundlichen Grüssen

Gabriel Gruber

Note: This is an automated response to your message  "repeater and value of
a widget list" sent on 06.02.2011 18:26:38.

This is the only notification you will receive while this person is away.
Myles Byrne | 8 Feb 2011 15:32
Picon
Gravatar

again with 'works in jetty, not in tomcat' for simple URI matching in 2.2

Hi all,


Coming right off the current basic archetype with samples, simply adding a basic URL matcher:

 <map:match pattern="url=**">
    <map:generate src="{1}"/>    
etc ..

.. works fine in Jetty, but in Tomcat throws:

"Javax.servlet.ServletException: org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher"  (the rest of the trace is below)

.. where the error specifies the end of the match line above. 

I thought this looked like a UTF8 issue, so have followed the directions for this in both Cocoon and Tomcat. Since this hasn't fixed the problem yet, i have to ask the experts: UTF-8 issue? Anything else that can differ so fundamentally between Jetty and Tomcat?

Cheers,
- Myles Byrne

-------------------
avax.servlet.ServletException: org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher at <map:match> - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32 org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:230) org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443) org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) $Proxy3.service(Unknown Source) org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

root cause

org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher at <map:match> - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32 org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111) org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:90) org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78) org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143) org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78) org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81) org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239) org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171) org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247) org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351) org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169) org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443) org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) $Proxy3.service(Unknown Source) org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

root cause

java.lang.NullPointerException sun.net.www.ParseUtil.toURI(ParseUtil.java:261) sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:723) sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977) sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2052) java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:444) java.net.URLConnection.getLastModified(URLConnection.java:532) sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:398) org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:190) org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62) org.apache.excalibur.source.impl.AbstractSource.getLastModified(AbstractSource.java:144) org.apache.excalibur.source.impl.URLSource.getValidity(URLSource.java:323) org.apache.cocoon.generation.FileGenerator.getValidity(FileGenerator.java:127) org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.getValidityForInternalPipeline(AbstractCachingProcessingPipeline.java:982) org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupValidities(AbstractCachingProcessingPipeline.java:482) org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720) org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466) org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411) sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71) $Proxy26.process(Unknown Source) org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147) org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55) org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87) org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78) org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143) org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78) org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81) org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239) org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171) org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247) org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351) org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169) org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468) org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443) org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) $Proxy3.service(Unknown Source) org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Courier}
Andre Juffer | 8 Feb 2011 19:35
Picon
Picon

Re: again with 'works in jetty, not in tomcat' for simple URI matching in 2.2

On 02/08/2011 04:32 PM, Myles Byrne wrote:
> Hi all,
>
> Coming right off the current basic archetype with samples, simply adding
> a basic URL matcher:
>
> <map:match pattern="url=**">
> <map:generate src="{1}"/>

You could rewrite this as

<map:pipeline>
   <map:match pattern="something">
     <map:match type="request-parameter" pattern="url" />
       <map:generate src="{1}"/>
       ....

This should work fine with a request like:

www.foo.com/something?url=value

> etc ..
>
> .. works fine in Jetty, but in Tomcat throws:
>
> "Javax.servlet.ServletException: org.apache.cocoon.ProcessingException:
> Sitemap: error invoking matcher"  (the rest of the trace is below)
>
> .. where the error specifies the end of the match line above.
>
> I thought this looked like a UTF8 issue, so have followed the directions
> for this in both Cocoon and Tomcat. Since this hasn't fixed the problem
> yet, i have to ask the experts: UTF-8 issue? Anything else that can
> differ so fundamentally between Jetty and Tomcat?
>
> Cheers,
> - Myles Byrne
> fimm.fi <http://fimm.fi>
>
> -------------------
>
>
> avax.servlet.ServletException: org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher
> 	at<map:match>  - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
> 	org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:230)
> 	org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
> 	org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
> 	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> 	$Proxy3.service(Unknown Source)
> 	org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
> *root cause*
>
> org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher
> 	at<map:match>  - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
> 	org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111)
> 	org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:90)
> 	org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
> 	org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
> 	org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
> 	org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
> 	org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
> 	org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
> 	org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
> 	org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
> 	org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
> 	org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
> 	org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
> 	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> 	$Proxy3.service(Unknown Source)
> 	org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
> *root cause*
>
> java.lang.NullPointerException
> 	sun.net.www.ParseUtil.toURI(ParseUtil.java:261)
> 	sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:723)
> 	sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
> 	sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
> 	sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2052)
> 	java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:444)
> 	java.net.URLConnection.getLastModified(URLConnection.java:532)
> 	sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:398)
> 	org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:190)
> 	org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)
> 	org.apache.excalibur.source.impl.AbstractSource.getLastModified(AbstractSource.java:144)
> 	org.apache.excalibur.source.impl.URLSource.getValidity(URLSource.java:323)
> 	org.apache.cocoon.generation.FileGenerator.getValidity(FileGenerator.java:127)
> 	org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.getValidityForInternalPipeline(AbstractCachingProcessingPipeline.java:982)
> 	org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupValidities(AbstractCachingProcessingPipeline.java:482)
> 	org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
> 	org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
> 	org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
> 	sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
> 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	java.lang.reflect.Method.invoke(Method.java:597)
> 	org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
> 	$Proxy26.process(Unknown Source)
> 	org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
> 	org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
> 	org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
> 	org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
> 	org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
> 	org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
> 	org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
> 	org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
> 	org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
> 	org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
> 	org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
> 	org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
> 	org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
> 	org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
> 	org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
> 	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> 	$Proxy3.service(Unknown Source)
> 	org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>

--

-- 
Andre H. Juffer              | Phone: +358-8-553 1161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
StruBioCat                   | WWW: www.strubiocat.oulu.fi
NordProt                     | WWW: www.nordprot.org
Triacle Biocomputing         | WWW: www.triacle-bc.com
Sylvain Wallez | 9 Feb 2011 00:05
Picon
Favicon

Re: The cocoon protocol can not be used outside an environment.

Is the <trigger> section enclosed in the following component declaration?

<component 
class="org.apache.cocoon.components.cron.CocoonQuartzJobScheduler"
         role="org.apache.cocoon.components.cron.JobScheduler">

The CocoonQuartzJobScheduler is important, since this class is the one 
setting up the environment that is reported to be missing in your stack 
trace.

Sylvain

Le 06/02/11 10:07, pankaj gajjar a écrit :
> Hello Cocoon Users,
>
> I am facing one issue with integration of cocoon pipeline and 
> CocoonPipelineCronJob scheduler.
>
> My cocoon.xconf snap code as below
> ...
> <trigger name="pipeline-writetest"
> target="org.apache.cocoon.components.cron.CronJob/writetimecron"
> concurrent-runs="false">
> <cron>10 * * ? * *</cron>
> </trigger>
> </triggers>
> <component role="org.apache.cocoon.components.cron.CronJob/writetimecron"
> class="org.apache.cocoon.components.cron.CocoonPipelineCronJob"
> logger="cron.writetimecron">
> <sleep>10</sleep>
> <pipeline>writetime</pipeline>
> </component>
> and my pipeline configure in sitemap.xmap as below
> <map:pipeline internal-only="false">
> <map:match pattern="writetime">
> .....<!-- all generator,transformer and serialier code ..-->
> </map:match>
> </map:pipeline>
>
> > Information Tomcat:
> > apache-tomcat-6.0.30 Cocoon : 2.1 and
> > my pipeline is working well if i
> > accessing it externally ..
>
> **but if i am calling this pipeline from my cronjob then i am getting 
> below error in cocoon.log**
> INFO  (2011-02-06) 12:54.10:018 [cron] (Unknown-URI) 
> Unknown-Thread/QuartzJobExecutor: Executing cron job named 
> 'pipeline-writetest'
> ERROR (2011-02-06) 12:54.10:019 [cron] (Unknown-URI) 
> Unknown-Thread/QuartzJobExecutor: Cron job name 'pipeline-writetest' died.
> java.net.MalformedURLException: The cocoon protocol can not be used 
> outside an environment.
> at 
> org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:119)
> at 
> org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:65)
> at 
> org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
> at 
> org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
> at 
> org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
> at 
> org.apache.cocoon.components.cron.CocoonPipelineCronJob.execute(CocoonPipelineCronJob.java:68)
> 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 
> org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:143)
> at $Proxy6.execute(Unknown Source)
> at 
> org.apache.cocoon.components.cron.QuartzJobExecutor.execute(QuartzJobExecutor.java:103)
> at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown 
> Source)
> at java.lang.Thread.run(Thread.java:662)
>
> Please do let me know if you face same issue ago or you are knowing 
> solution of this .
>
> Regards
> Pankaj

--

-- 
Sylvain Wallez - http://bluxte.net
Myles Byrne | 9 Feb 2011 15:00
Picon
Gravatar

Re: again with 'works in jetty, not in tomcat' for simple URI matching in 2.2

Thanks, Andre! It would be a godsend to route around this problem. 


But I haven't been able to get param passing to work as you suggest. Following from your example, this sitemap match:

<map:pipeline>
 <map:match pattern="something">
   <map:match type="request-parameter" pattern="url" />
     <map:generate src="{1}"/>
     ....

.. would require this matcher setup in components, no? 

    <map:matcher name="request-parameter" src="org.apache.cocoon.matching.RequestParameterMatcher"/>

I haven't been able to get this to work .. the trace says:

javax.servlet.ServletException: org.apache.cocoon.ResourceNotFoundException: Resource not found.
...
Caused by: org.apache.excalibur.source.SourceNotFoundException: file:///home/... /./src/main/resources/COB-INF/ doesn't exist.

.. This seems better than the outright fail of the default URI matcher, but i'm having a hard time fixing this, too. Any pointer to get the param passing as you suggest?

Cheers,
- Myles
FIMM.fi


On Tue, Feb 8, 2011 at 8:35 PM, Andre Juffer <ajuffer <at> sun3.oulu.fi> wrote:
On 02/08/2011 04:32 PM, Myles Byrne wrote:
Hi all,

Coming right off the current basic archetype with samples, simply adding
a basic URL matcher:

<map:match pattern="url=**">
<map:generate src="{1}"/>

You could rewrite this as

<map:pipeline>
 <map:match pattern="something">
   <map:match type="request-parameter" pattern="url" />
     <map:generate src="{1}"/>
     ....

This should work fine with a request like:

www.foo.com/something?url=value




etc ..

.. works fine in Jetty, but in Tomcat throws:

"Javax.servlet.ServletException: org.apache.cocoon.ProcessingException:
Sitemap: error invoking matcher"  (the rest of the trace is below)

.. where the error specifies the end of the match line above.

I thought this looked like a UTF8 issue, so have followed the directions
for this in both Cocoon and Tomcat. Since this hasn't fixed the problem
yet, i have to ask the experts: UTF-8 issue? Anything else that can
differ so fundamentally between Jetty and Tomcat?

Cheers,
- Myles Byrne
fimm.fi <http://fimm.fi>


-------------------


avax.servlet.ServletException: org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher
       at<map:match>  - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
       org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:230)
       org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
       org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
       org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       $Proxy3.service(Unknown Source)
       org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

*root cause*

org.apache.cocoon.ProcessingException: Sitemap: error invoking matcher
       at<map:match>  - file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
       org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111)
       org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:90)
       org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
       org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
       org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
       org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
       org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
       org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
       org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
       org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
       org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
       org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
       org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
       org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       $Proxy3.service(Unknown Source)
       org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

*root cause*

java.lang.NullPointerException
       sun.net.www.ParseUtil.toURI(ParseUtil.java:261)
       sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:723)
       sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
       sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
       sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2052)
       java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:444)
       java.net.URLConnection.getLastModified(URLConnection.java:532)
       sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:398)
       org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:190)
       org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)
       org.apache.excalibur.source.impl.AbstractSource.getLastModified(AbstractSource.java:144)
       org.apache.excalibur.source.impl.URLSource.getValidity(URLSource.java:323)
       org.apache.cocoon.generation.FileGenerator.getValidity(FileGenerator.java:127)
       org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.getValidityForInternalPipeline(AbstractCachingProcessingPipeline.java:982)
       org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupValidities(AbstractCachingProcessingPipeline.java:482)
       org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
       org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
       org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
       sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       java.lang.reflect.Method.invoke(Method.java:597)
       org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
       $Proxy26.process(Unknown Source)
       org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
       org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
       org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
       org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
       org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
       org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
       org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
       org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
       org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
       org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
       org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
       org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
       org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
       org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
       org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
       org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       $Proxy3.service(Unknown Source)
       org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)



--
Andre H. Juffer              | Phone: +358-8-553 1161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
StruBioCat                   | WWW: www.strubiocat.oulu.fi
NordProt                     | WWW: www.nordprot.org
Triacle Biocomputing         | WWW: www.triacle-bc.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe <at> cocoon.apache.org
For additional commands, e-mail: users-help <at> cocoon.apache.org


Andre Juffer | 10 Feb 2011 09:59
Picon
Picon

Re: again with 'works in jetty, not in tomcat' for simple URI matching in 2.2

On 02/09/2011 04:00 PM, Myles Byrne wrote:
> Thanks, Andre! It would be a godsend to route around this problem.
>
> But I haven't been able to get param passing to work as you suggest.
> Following from your example, this sitemap match:
>
> <map:pipeline>
> <map:match pattern="something">
> <map:match type="request-parameter" pattern="url" />
> <map:generate src="{1}"/>
>       ....
>
> .. would require this matcher setup in components, no?
>
> <map:matcher name="request-parameter"
> src="org.apache.cocoon.matching.RequestParameterMatcher"/>

I actually had nothing like that in the sitemap. It just worked. But I 
should note that I was using this with a version older than cocoon 2.2. 
You are using cocoon 2.2, right?

Your url value is pointing to a remote server, other than the one you 
are running cocoon? I guess, the code above did get the value of url, 
but its value is misinterpreted  by cocoon, as it tries to find 
something of the local disk instead. The <map:generate src="{1}" /> 
could be causing this. If url's value does actually refer to a local 
resource, it is looking in the wrong place, as the url's value may be 
interpreted as being relative to the root of your block, while you may 
had a different location in mind.

>
> I haven't been able to get this to work .. the trace says:
>
> javax.servlet.ServletException:
> org.apache.cocoon.ResourceNotFoundException: Resource not found.
> ...
> Caused by: org.apache.excalibur.source.SourceNotFoundException:
> file:///home/... /./src/main/resources/COB-INF/ doesn't exist.
>
> .. This seems better than the outright fail of the default URI matcher,
> but i'm having a hard time fixing this, too. Any pointer to get the
> param passing as you suggest?
>
> Cheers,
> - Myles
> FIMM.fi
>
>
> On Tue, Feb 8, 2011 at 8:35 PM, Andre Juffer <ajuffer <at> sun3.oulu.fi
> <mailto:ajuffer <at> sun3.oulu.fi>> wrote:
>
>     On 02/08/2011 04:32 PM, Myles Byrne wrote:
>
>         Hi all,
>
>         Coming right off the current basic archetype with samples,
>         simply adding
>         a basic URL matcher:
>
>         <map:match pattern="url=**">
>         <map:generate src="{1}"/>
>
>
>     You could rewrite this as
>
>     <map:pipeline>
>     <map:match pattern="something">
>     <map:match type="request-parameter" pattern="url" />
>     <map:generate src="{1}"/>
>           ....
>
>     This should work fine with a request like:
>
>     www.foo.com/something?url=value <http://www.foo.com/something?url=value>
>
>
>
>
>         etc ..
>
>         .. works fine in Jetty, but in Tomcat throws:
>
>         "Javax.servlet.ServletException:
>         org.apache.cocoon.ProcessingException:
>         Sitemap: error invoking matcher"  (the rest of the trace is below)
>
>         .. where the error specifies the end of the match line above.
>
>         I thought this looked like a UTF8 issue, so have followed the
>         directions
>         for this in both Cocoon and Tomcat. Since this hasn't fixed the
>         problem
>         yet, i have to ask the experts: UTF-8 issue? Anything else that can
>         differ so fundamentally between Jetty and Tomcat?
>
>         Cheers,
>         - Myles Byrne
>         fimm.fi <http://fimm.fi> <http://fimm.fi>
>
>
>         -------------------
>
>
>         avax.servlet.ServletException:
>         org.apache.cocoon.ProcessingException: Sitemap: error invoking
>         matcher
>                 at<map:match>  -
>         file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
>
>           org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:230)
>
>           org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
>
>           org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
>
>           org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>           org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 $Proxy3.service(Unknown Source)
>
>           org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
>         *root cause*
>
>         org.apache.cocoon.ProcessingException: Sitemap: error invoking
>         matcher
>                 at<map:match>  -
>         file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32
>
>           org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:90)
>
>           org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
>
>           org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
>
>           org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
>
>           org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
>
>           org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
>
>           org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
>
>           org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
>
>           org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
>
>           org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
>
>           org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>           org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 $Proxy3.service(Unknown Source)
>
>           org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
>         *root cause*
>
>         java.lang.NullPointerException
>                 sun.net.www.ParseUtil.toURI(ParseUtil.java:261)
>
>           sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:723)
>
>           sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
>
>           sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
>
>           sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2052)
>
>           java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:444)
>
>           java.net.URLConnection.getLastModified(URLConnection.java:532)
>
>           sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:398)
>
>           org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:190)
>
>           org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)
>
>           org.apache.excalibur.source.impl.AbstractSource.getLastModified(AbstractSource.java:144)
>
>           org.apache.excalibur.source.impl.URLSource.getValidity(URLSource.java:323)
>
>           org.apache.cocoon.generation.FileGenerator.getValidity(FileGenerator.java:127)
>
>           org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.getValidityForInternalPipeline(AbstractCachingProcessingPipeline.java:982)
>
>           org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupValidities(AbstractCachingProcessingPipeline.java:482)
>
>           org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
>
>           org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
>
>           org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
>                 sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
>
>           sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                 java.lang.reflect.Method.invoke(Method.java:597)
>
>           org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
>                 $Proxy26.process(Unknown Source)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>
>           org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
>
>           org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
>
>           org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
>
>           org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
>
>           org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
>
>           org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
>
>           org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
>
>           org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
>
>           org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
>
>           org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
>
>           org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
>
>           org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
>
>           org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>
>           org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>                 $Proxy3.service(Unknown Source)
>
>           org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
>                 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
>           org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)
>
>
>
>     --
>     Andre H. Juffer              | Phone: <tel:+35885531161>+358-8-553
>     1161 <tel:+35885531161>
>     Biocenter Oulu and           | Fax:
>     <tel:+35885531141>+358-8-553-1141 <tel:+35885531141>
>     Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
>     <mailto:andre.juffer <at> oulu.fi>
>     University of Oulu, Finland  | WWW:
>     www.biochem.oulu.fi/Biocomputing/
>     <http://www.biochem.oulu.fi/Biocomputing/>
>     StruBioCat                   | WWW: www.strubiocat.oulu.fi
>     <http://www.strubiocat.oulu.fi>
>     NordProt                     | WWW: www.nordprot.org
>     <http://www.nordprot.org>
>     Triacle Biocomputing         | WWW: www.triacle-bc.com
>     <http://www.triacle-bc.com>
>
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: users-unsubscribe <at> cocoon.apache.org
>     <mailto:users-unsubscribe <at> cocoon.apache.org>
>     For additional commands, e-mail: users-help <at> cocoon.apache.org
>     <mailto:users-help <at> cocoon.apache.org>
>
>

--

-- 
Andre H. Juffer              | Phone: +358-8-553 1161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
StruBioCat                   | WWW: www.strubiocat.oulu.fi
NordProt                     | WWW: www.nordprot.org
Triacle Biocomputing         | WWW: www.triacle-bc.com
Myles Byrne | 10 Feb 2011 10:09
Picon
Gravatar

Re: again with 'works in jetty, not in tomcat' for simple URI matching in 2.2

Andre, that's very helpful. You're right, the URL value is a remote server - plus it's HTTPS. 


What kills me is that it works fine with Jetty, but as soon as i build the webapp and move the WAR into Tomcat, it breaks. What causes Tomcat to evaluate a URI as a local filepath, while Jetty hits it properly?

I will try generating a 2.1 version and see if that fixes it.

Cheers,
- Myles


On Thu, Feb 10, 2011 at 10:59 AM, Andre Juffer <ajuffer <at> sun3.oulu.fi> wrote:
On 02/09/2011 04:00 PM, Myles Byrne wrote:
Thanks, Andre! It would be a godsend to route around this problem.

But I haven't been able to get param passing to work as you suggest.
Following from your example, this sitemap match:

<map:pipeline>
<map:match pattern="something">
<map:match type="request-parameter" pattern="url" />
<map:generate src="{1}"/>
     ....

.. would require this matcher setup in components, no?

<map:matcher name="request-parameter"
src="org.apache.cocoon.matching.RequestParameterMatcher"/>

I actually had nothing like that in the sitemap. It just worked. But I should note that I was using this with a version older than cocoon 2.2. You are using cocoon 2.2, right?

Your url value is pointing to a remote server, other than the one you are running cocoon? I guess, the code above did get the value of url, but its value is misinterpreted  by cocoon, as it tries to find something of the local disk instead. The <map:generate src="{1}" /> could be causing this. If url's value does actually refer to a local resource, it is looking in the wrong place, as the url's value may be interpreted as being relative to the root of your block, while you may had a different location in mind.


I haven't been able to get this to work .. the trace says:

javax.servlet.ServletException:
org.apache.cocoon.ResourceNotFoundException: Resource not found.
...
Caused by: org.apache.excalibur.source.SourceNotFoundException:
file:///home/... /./src/main/resources/COB-INF/ doesn't exist.

.. This seems better than the outright fail of the default URI matcher,
but i'm having a hard time fixing this, too. Any pointer to get the
param passing as you suggest?

Cheers,
- Myles
FIMM.fi


On Tue, Feb 8, 2011 at 8:35 PM, Andre Juffer <ajuffer <at> sun3.oulu.fi
<mailto:ajuffer <at> sun3.oulu.fi>> wrote:

   On 02/08/2011 04:32 PM, Myles Byrne wrote:

       Hi all,

       Coming right off the current basic archetype with samples,
       simply adding
       a basic URL matcher:

       <map:match pattern="url=**">
       <map:generate src="{1}"/>


   You could rewrite this as

   <map:pipeline>
   <map:match pattern="something">
   <map:match type="request-parameter" pattern="url" />
   <map:generate src="{1}"/>
         ....

   This should work fine with a request like:

   www.foo.com/something?url=value <http://www.foo.com/something?url=value>





       etc ..

       .. works fine in Jetty, but in Tomcat throws:

       "Javax.servlet.ServletException:
       org.apache.cocoon.ProcessingException:
       Sitemap: error invoking matcher"  (the rest of the trace is below)

       .. where the error specifies the end of the match line above.

       I thought this looked like a UTF8 issue, so have followed the
       directions
       for this in both Cocoon and Tomcat. Since this hasn't fixed the
       problem
       yet, i have to ask the experts: UTF-8 issue? Anything else that can
       differ so fundamentally between Jetty and Tomcat?

       Cheers,
       - Myles Byrne
       fimm.fi <http://fimm.fi> <http://fimm.fi>



       -------------------


       avax.servlet.ServletException:
       org.apache.cocoon.ProcessingException: Sitemap: error invoking
       matcher
               at<map:match>  -
       file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32

         org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:230)

         org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)

         org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)

         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
               $Proxy3.service(Unknown Source)

         org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

       *root cause*

       org.apache.cocoon.ProcessingException: Sitemap: error invoking
       matcher
               at<map:match>  -
       file:///opt/apps/apache-tomcat-6.0.18/work/Catalina/localhost/lsdbweb-1.0.0/blocks/lsdb/sitemap.xmap:56:32

         org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:111)

         org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:90)

         org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)

         org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)

         org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)

         org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)

         org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)

         org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)

         org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)

         org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)

         org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)

         org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)

         org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)

         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
               $Proxy3.service(Unknown Source)

         org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)

       *root cause*

       java.lang.NullPointerException
               sun.net.www.ParseUtil.toURI(ParseUtil.java:261)

         sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:723)

         sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)

         sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)

         sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2052)

         java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:444)

         java.net.URLConnection.getLastModified(URLConnection.java:532)

         sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(HttpsURLConnectionImpl.java:398)

         org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:190)

         org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)

         org.apache.excalibur.source.impl.AbstractSource.getLastModified(AbstractSource.java:144)

         org.apache.excalibur.source.impl.URLSource.getValidity(URLSource.java:323)

         org.apache.cocoon.generation.FileGenerator.getValidity(FileGenerator.java:127)

         org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.getValidityForInternalPipeline(AbstractCachingProcessingPipeline.java:982)

         org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupValidities(AbstractCachingProcessingPipeline.java:482)

         org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)

         org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)

         org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
               sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)

         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
               java.lang.reflect.Method.invoke(Method.java:597)

         org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
               $Proxy26.process(Unknown Source)

         org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)

         org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)

         org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)

         org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)

         org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)

         org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)

         org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)

         org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)

         org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)

         org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)

         org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)

         org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)

         org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)

         org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)

         org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)

         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
               $Proxy3.service(Unknown Source)

         org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106)
               javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

         org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:131)



   --
   Andre H. Juffer              | Phone: <tel:+35885531161>+358-8-553
   1161 <tel:+35885531161>
   Biocenter Oulu and           | Fax:
   <tel:+35885531141>+358-8-553-1141 <tel:+35885531141>

   Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
   <mailto:andre.juffer <at> oulu.fi>

   University of Oulu, Finland  | WWW:
   www.biochem.oulu.fi/Biocomputing/
   <http://www.biochem.oulu.fi/Biocomputing/>

   StruBioCat                   | WWW: www.strubiocat.oulu.fi
   <http://www.strubiocat.oulu.fi>

   NordProt                     | WWW: www.nordprot.org
   <http://www.nordprot.org>

   Triacle Biocomputing         | WWW: www.triacle-bc.com
   <http://www.triacle-bc.com>


   ---------------------------------------------------------------------
   To unsubscribe, e-mail: users-unsubscribe <at> cocoon.apache.org
   <mailto:users-unsubscribe <at> cocoon.apache.org>

   For additional commands, e-mail: users-help <at> cocoon.apache.org
   <mailto:users-help <at> cocoon.apache.org>




--
Andre H. Juffer              | Phone: +358-8-553 1161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: andre.juffer <at> oulu.fi
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
StruBioCat                   | WWW: www.strubiocat.oulu.fi
NordProt                     | WWW: www.nordprot.org
Triacle Biocomputing         | WWW: www.triacle-bc.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe <at> cocoon.apache.org
For additional commands, e-mail: users-help <at> cocoon.apache.org


Alec Bickerton | 12 Feb 2011 13:30
Picon
Favicon

Support & Traxtransformers

Hi,
We're running a number of sites using cocoon 2.1.9 and have problem with 
the TraxTransformer.

We have some xslts that make use of document($url) to retrieve some data 
from an external service. The problem is that some of these external 
services require the useragent http-header to be propagated from the 
original request, in order to provide a device specific result.

Having googled for what seems like days. I think this is possible to do 
with a URIResolver. Can anyone here suggest a way to do it ?

e.g.

request -> generatorX -> xslt1 -> xslt2 -> serialize

xslt1 matches a DSL element and calls document( 
http://someservice/getscaledImageURLForUseragent )

The service is provided by a third party, and xslt1 cannot be changed.

Any help is much appreciated.

Regards
Alec

Gmane