le 17/07/2006 16:10 Thorsten Scherler a écrit :
El lun, 17-07-2006 a las 11:28 +0200, Cyriaque Dupoirieux escribió:
le 17/07/2006 10:46 Thorsten Scherler a écrit :
El lun, 17-07-2006 a las 01:18 -0700, Cyriaque Dupoirieux (JIRA)
escribió:
[SNIP...]
I am not sure. This is not a dispatcher problem but more a locationmap
one. The dispatcher transformer is coming into place later. However you
can do something like:
Index:
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
===================================================================
---
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
(revisión: 422657)
+++
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
(copia de trabajo)
@@ -96,6 +96,7 @@
this.prepare(parameters, source);
String uri = this.getProjectDir() + this.getRequest()
+ this.getProjectExtension();
+ getLogger().warn("RecursiveDirectoryTraversalAction trying to
use uri: "+uri);
Map returnMap = act(uri);
return returnMap;
}
@@ -116,6 +117,7 @@
this.computeResponseURI(uri, src);
//src = resolver.resolveURI(uri);
if (this.map.containsKey("uri")) {
+ getLogger().warn("RecursiveDirectoryTraversalAction
found at location: "+uri);
return this.map;
} else {
return null;
For debug e.g the RecursiveDirectoryTraversalAction and see what the uri
is.
You can see it with
tail -f build/webapp/WEB-INF/logs/*.log|grep
RecursiveDirectoryTraversalAction
which should return something like:
WARN (2006-07-17) 16:08.49:702 [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction trying to use
uri:
/home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv
WARN (2006-07-17) 16:08.49:705 [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction trying to use
uri: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
WARN (2006-07-17) 16:08.49:705 [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction found at
location: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
In any case please do
[EMAIL PROTECTED]:~/src/apache/forrest/trunk/main$ ./build.sh clean
[EMAIL PROTECTED]:~/src/apache/forrest/trunk/main$ ./build.sh
before you test.
Done,
Make sure that
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher$ svn diff locationmap.xml
returns nothing.
Done,
Now the results :
============
Example of my structure :
xdocs/
|-- jeux
|-- ultima2.xml
`-- ultima2/
`-- mondes/
|-- mapx21.xml
structurer/url/
|-- jeux/
| `-- ultima2/
| `-- mondes/
| |-- pelt.fv
`-- pelt.fv
The correct behaviour should be :
- jeux/ultima2.xml uses structurer/url/pelt.fv
- jeux/ultima2/mondes/mapx21 uses structure/url/jeux/ultima2/mondes/pelt.fv
dispatcherErrorStack:
org.xml.sax.SAXParseException: The markup in the document following the
root element must be well-formed.
WARN (2006-07-18) 15:53.33:656 [cocoon.manager] (Unknown-URI)
Unknown-Thread/SourceExistsSelector: Error reading from source
'lm://dispatcher.structurer.resourceType.document-v20': Could not
resolve locationmap location.
WARN (2006-07-18) 15:53.33:656 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv
WARN (2006-07-18) 15:53.33:656 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv
for
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv]
WARN (2006-07-18) 15:53.35:453 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
WARN (2006-07-18) 15:53.35:453 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
ERROR (2006-07-18) 15:53.37:000 [cocoon.manager] (Unknown-URI)
Unknown-Thread/DispatcherTransformer: dispatcherError: 500 - Internal
server error
The contract "content-title" has thrown thrown an exception by resolving
raw data from "cocoon://jeux/ultima2/mondes/mapx21.title.xml".
So here, we can see that there is a problem with the uri of the second
file which is jeux/ultima2/mondes/mapx21.xml
Now, I replace the {../1} by {1} in the request - just to see :
dispatcherErrorStack:
org.xml.sax.SAXParseException: The markup in the document following the
root element must be well-formed.
WARN (2006-07-18) 16:48.36:312 [cocoon.manager] (Unknown-URI)
Unknown-Thread/SourceExistsSelector: Error reading from source
'lm://dispatcher.structurer.resourceType.document-v20': Could not
resolve locationmap location.
WARN (2006-07-18) 16:48.36:312 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
WARN (2006-07-18) 16:48.36:312 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
WARN (2006-07-18) 16:48.38:109 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv
WARN (2006-07-18) 16:48.38:109 [cocoon.manager] (Unknown-URI)
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location:
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv
for
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv]
And now there is a problem with the uri of the first file which is
jeux/ultima2.xml
I think you are going to understand :-) since my logs are not identical
to yours :
I have [cocoon.manager] instead of [core.modules.mapper.lm]
and (Unknown-URI) Unknown-Thread instead of (/search.html) PoolThread-4
Salutations,
Cyriaque,
salu2
Salutations,
Cyriaque,
If I replace the {../1} by the previous {1} :
<act type="RecursiveDirectoryTraversalAction">
<parameter value="{1}" name="request"/>
<parameter value="{project:theme}" name="projectFallback"/>
<parameter value="{project:theme-ext}" name="projectExtension"/>
<parameter value="{project:content.xdocs}" name="projectDir"/>
<!-- xdocs [depreciated]
project-based theme-based = directory-based / parent-directory based
(recursively) -->
<location src="{uri}" />
</act>
<act type="RecursiveDirectoryTraversalAction">
<parameter value="{../1}" name="request"/>
<parameter value="{project:theme}" name="projectFallback"/>
<parameter value="{project:theme-ext}" name="projectExtension"/>
<parameter value="{project:resources}structurer/url/"
name="projectDir"/>
<!-- url
project-based theme-based = directory-based / parent-directory based
(recursively) -->
<location src="{uri}" />
</act>
It works again.
I reopen the FOR...
Hmm, it is hard to assist on this since it is working fine for me.
Did you change the locationmap.xml or have implemented own matches in
your project lm?
Can somebody else test the current changes?
salu2
wildcard matcher such as **.xml when used in lm actions like {1} are not
rewritten
----------------------------------------------------------------------------------
Key: FOR-893
URL: http://issues.apache.org/jira/browse/FOR-893
Project: Forrest
Issue Type: Bug
Components: Locationmap, Dispatcher (aka views)
Reporter: Thorsten Scherler
Attachments: lm.log.xml
In the thread http://marc.theaimsgroup.com/?t=114682704400003&r=1&w=2 I found
out the following.
I did a debug session with the RecursiveDirectoryTraversalAction and I
figured out that the {1} in the lm is not probably resolved (it is
always "").
<match pattern="resolve.structurer.**">
...
<act type="RecursiveDirectoryTraversalAction">
<parameter value="{1}" name="request"/>
It seems to happen in all lm actions, I debugged the resourceTypeAction
and the same problem can be seen.
I attached the result of
svn log . -v --xml >~/src/apache/forrest/trunk/lm.log.xml