On Apr 29, 2009, at 10:36 AM, Thomas Mortagne wrote:

> On Wed, Apr 29, 2009 at 09:27, Jonas Almfeldt <jonas.almfe...@gmail.com 
> > wrote:
>> Hi,
>>
>> On Tue, Apr 28, 2009 at 4:54 PM, Thomas Mortagne
>> <thomas.morta...@xwiki.com>wrote:
>> [snip]
>>
>>>>
>>>> Looks like it can't find some python files which are inside a jar  
>>>> file
>>>> (pygments-1.0-xwiki.jar). A java URL to the files inside the jar is
>>>> given to jython which is supposed to look at this URL as if it  
>>>> was a
>>>> folder. Maybe this can't be done with the JVM, the application  
>>>> Server
>>>> or the configuration of one of theses.
>>>
>>> Could you try to extract Lib/ folder from pygments-1.0-xwiki.jar to
>>> classes/ folder (the one which is at the same level than lib/  
>>> folder,
>>> create it if it does not exists) and move the jar where jython could
>>> not find it. Trying to see if it's working when the Pygments code is
>>> in a real folder.
>>>
>>> (I should maybe add a configuration to be able to set the location  
>>> of
>>> Python code anyway)
>>>
>>
>> I have now tried to remove the file pygments-1.0-xwiki.jar from
>> xwiki.war/WEB-INF/lib/
>> and extracted the Lib/ folder of the pygments-1.0-xwiki.jar to this  
>> path:
>>
>> xwiki.war/WEB-INF/classes/Lib/
>>
>> so that xwiki.war/WEB-INF/classes/Lib/pygments/ contains the python  
>> files.
>>
>> And then restarted the app server. But I get the "Failed to execute  
>> macro:
>> code" with part of the stack trace below.
>>
>> Also tried to skip the Lib part of the path and put the pygments  
>> folder
>> directly under xwiki.war/WEB-INF/classes/
>> but it did not do the trick either.
>
> Maybe the issue is that your application server does not let you read
> directly in resources (like jar and classes). Currently the macro
> always look in the resources, i will try to add a configuration to be
> able to set the pygments/python folder anywhere.

Thomas I'm not sure we should have this config option. It doesn't  
sound right. It should be ok to always look in the resources.

If the macro uses File IO to explicitely look into WEB-INF/lib/...  
then yes that's very wrong. We should only use the classloader to load  
resources.

-Vincent

>> ...
>> Caused by: LookupError: no codec search functions registered: can't
>> find encoding
>>
>>        at  
>> org.python.core.PyException.fillInStackTrace(PyException.java:65)
>>        at java.lang.Throwable.<init>(Throwable.java:56)
>>        at org.python.core.PyException.<init>(PyException.java:46)
>>        at org.python.core.PyException.<init>(PyException.java:43)
>>        at org.python.core.PyException.<init>(PyException.java:56)
>>        at org.python.core.codecs.lookup(codecs.java:80)
>>        at org.python.core.codecs.getEncoder(codecs.java:209)
>>        at org.python.core.codecs.encode(codecs.java:187)
>>        at org.python.core.PyString.str_encode(PyString.java:2443)
>>        at org.python.core.PyString.encode(PyString.java:2434)
>>        at  
>> org.python.antlr.GrammarActions.extractString(GrammarActions.java: 
>> 443)
>>        at  
>> org.python.antlr.GrammarActions.extractStrings(GrammarActions.java: 
>> 399)
>>        at org.python.antlr.PythonParser.atom(PythonParser.java:11244)
>> ...
>> ...
>>
>>
>>>>
>>>> Trying to find if it's possible to enable some more detailed log on
>>> jython.
>>>
>>
>> [snip]
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to