Daniel Fagerstrom napisaƂ(a):
You don't get that part, which show that there is a problem with my design. I probably mounted the dispatcher servlet at "/*" while developing the stuff :/ Thinking a little bit more about it, it would probably better to let the servlet path of the dispatcher servlet go to the context path when calling the servlet services. Then we would get:

newContextPath = contextPath + servletPath
newServletPath = mountPath
newPathInfo = pathInfo.substring(mountPath.length())

where servletPath above is the servletPath of the dispatcher servlet in the web.xml. Looking at it this mapping looks much more natural than the original one. But there might have been some god reason that I choose the original design that I have forgotten. If no one finds any problem with the new proposal we could switch to that.
Maybe I'm myopic but I would go for that. Speaking for myself I was having hard times understanding this path calculations, your new proposal seems to be more natural for me also.
To get the mountPath, it is better to use the blockPath module e.g. {block-path:ajax} (assuming that the cocoon-ajax-impl service servlet is connected at the name ajax in the Spring config). You can also use the service protocol inside the pipeline:

<script type="text/javascript"
src="servlet:ajax://resources/dojo/dojo.js"/>

and end the pipeline with a link rewriter transformer that use the block path module to get the path right.

The link rewriter transformer can probably be configured to add the prefix "/blocks-test" as well http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/transformation/LinkRewriterTransformer.html.
Doh! I've learned about blocks connections just few days ago and had enough time to forgot them ;)
Obviously, I will try your hints.

--
Grzegorz Kossakowski

Reply via email to