Hi Giordano,
You’ve chopped off the root error in the stack trace below so it’s hard to help you with
your velocity error.
Thanks
-Vincent
On 26 Dec 2015 at 17:07:25, Giordano Ninonà (giordano.ninona(a)gmail.com) wrote:
Hi Vincent,
I've solved the "save files" problem with absolute paths and it works,
however I've another problem, this time with the Velocity macro inside a wiki page.
This is the exception that I've got:
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for
content [#if("$!request.evolver" == 1)
## Request for creating a new instance
##$services.evoS.parseBPXML('Home','BSS Rome')
$services.evoS.removeInstance('Take bike')
##$response.sendRedirect($xwiki.getURL('Main.WebHome'))
#else
#end
{{html}}
<form action="" id="newEvolution" method="POST">
<div>
<input type="hidden" name="evolver" value="1"/>
<span class="buttonwrapper">
<input type="submit" value="Evolve" class="button"/>
</span>
</div>
</form>
{{/html}}]
at
org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:131)
at
org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:50)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:286)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
at
org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:269)
at
org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at
org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:95)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:253)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:126)
at
org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:56)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at
org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
at
org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at
org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1164)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1127)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1179)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:692)
at sun.reflect.GeneratedMethodAccessor403.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
at
org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
...etc etc
You can find in the attachments the Tree structure of my wiki, pages inside "BSS
Rome" space are all terminal pages.
Thank you for your help,
Giordano.
2015-12-26 13:03 GMT+01:00 vincent(a)massol.net <vincent(a)massol.net>et>:
Hi Giordano,
On 23 Dec 2015 at 19:40:11, Giordano Ninonà
(giordano.ninona@gmail.com(mailto:giordano.ninona@gmail.com)) wrote:
Thanks Vincent,
I found everything I need but I got a nullpointer exeptioneverytime I use the
environment.getTemporaryDirectory() method in my code.
I thought it could be the component manager, so I've tried to inizialize it but I got
an error every time I call the method "initialize()", as suggested in [1] and
[2].
If you’re deploying your component inside an XWiki you don’t need to initialize the CM,
this is done for you by XWiki.
A NPE means you’re missing an @Inject and thus the Environment instance is null.
Could you show us your code?
Thanks
-Vincent
Any ideas why it is not working?
Thanks,
Giordano
[1]
http://extensions.xwiki.org/xwiki/bin/view/Extension/Environment+Module
[2]
http://extensions.xwiki.org/xwiki/bin/view/Extension/Component+Module#HComp…
2015-12-23 16:59 GMT+01:00 vincent@massol.net(mailto:vincent@massol.net) :
>
>
> On 23 Dec 2015 at 16:56:20, Giordano Ninonà
(giordano.ninona@gmail.com(mailto:giordano.ninona@gmail.com)(mailto:giordano.ninona@gmail.com))
wrote:
>
> > Hi users,
> >
> > Thanks for your answers, anyway it wasn't a String problem, and also
change
> > to GET doesn't produce anything. Maybe I've found my problem, when I
start
> > my component, the very first thing to do is to parse an XML file thus my
> > script service provide a "parseBPXML()" method. The problem is where
can i
> > store this file in order to make accessible by my component, I've already
> > Injected the Environment component but I can't understand where to put my
> > file (i.e. which is the "permanent directory") and how to access it.
>
> Check your xwiki.properties file and search for permanentDirectory.
>
> Thanks
> -Vincent
>
> > Thank you,
> > Giordano.
> >
> > 2015-12-23 6:51 GMT+01:00 Marius Dumitru Florea <
> > mariusdumitru.florea@xwiki.com(mailto:mariusdumitru.florea@xwiki.com)>:
> >
> > > On Wed, Dec 23, 2015 at 12:30 AM, Ludovic Dubost
> > > wrote:
> > >
> > > > Isn't the problem that it should be
> > > >
> > > > #if("$!request.evolver" == "1")
> > > >
> > > > And not
> > > >
> > > >
> > >
> > > > #if("$!request.evolver" == 1)
> > > >
> > >
> > > I thought so too but I tested and it works. I checked the Velocity
> > > documentation [1] and the explanation is:
> > >
> > > "In the last case (when objects are of different classes), the
toString()
> > > method is called on each object and the resulting Strings are
compared."
> > >
> > > Thanks,
> > > Marius
> > >
> > > [1]
> > >
> > >
https://click.apache.org/docs/velocity/vtl-reference-guide.html##if/#elseif…
> > >
> > >
> > > >
> > > > Ludo
> > > > Le 22 déc. 2015 21:32, "Giordano Ninonà" a
> > > > écrit :
> > > >
> > > > > Dear Vincent,
> > > > >
> > > > > Tank you for your reply, I would try what you suggested in the
> > > afternoon,
> > > > > but regarding the "evolver=1 request param", I've
set it equal to 1
> > > > > together with POST command in order to make it always true
ensuring
> > > that
> > > > my
> > > > > component is started every time. My thoughts were wrong?
> > > > >
> > > > > Giordano.
> > > > >
> > > > > 2015-12-22 11:31 GMT+01:00
vincent@massol.net(mailto:vincent@massol.net) :
> > > > >
> > > > > > Hi Giordano,
> > > > > >
> > > > > > On 21 Dec 2015 at 15:20:55, Giordano Ninonà (
> > > giordano.ninona@gmail.com(mailto:giordano.ninona@gmail.com)
> > > > > > (mailto:giordano.ninona@gmail.com)) wrote:
> > > > > >
> > > > > > > Hi users,
> > > > > > >
> > > > > > > My project in XWiki consists in a java component which
offers some
> > > > APIs
> > > > > > > through a script service called by a Velocity script
in a wiki
> > > page.
> > > > > > >
> > > > > > > I put my .jar in the directory C:\XWiki Enterprise
> > > > > > > 7.3\*webapps\xwiki\WEB-INF\lib
> > > > > > > *and this is the Velocity and HTML code that I've
put in my XWiki
> > > > page:
> > > > > > >
> > > > > > > {{velocity}}
> > > > > > > #if("$!request.evolver" == 1)
> > > > > > > ## Request for creating a new instance
> > > > > > > $services.pars.parse()
> > > > > > > $services.evo.removeInstance("Take bike")
> > > > > > >
$response.sendRedirect($xwiki.getURL('Main.WebHome'))
> > > > > > > ## Stop processing, since we already sent a redirect.
> > > > > > > #stop
> > > > > > > #end
> > > > > >
> > > > > > [snip]
> > > > > >
> > > > > > > Let first say that nothing is happening when I click
on the
> > > "Evolve"
> > > > > > button
> > > > > > > and I don't know why...it looks like it should
work, also because
> > > > > > creating
> > > > > > > a Main_test class in Eclipse, I can run my software
calling exactly
> > > > the
> > > > > > > same methods and it works!
> > > > > >
> > > > > > You could use GET instead of POST and see what you get in
the URL (ie
> > > > > > whether you get the evolver=1 request param).
> > > > > >
> > > > > > > Moreover my component must create some files to store
some
> > > > information,
> > > > > > > thus I am wondering where to save those files in order
to make them
> > > > > > > accessible by the component.
> > > > > >
> > > > > > You can use the XWiki’s permanent directory.
> > > > > >
> > > > > > See
> > > > > >
> > > >
http://extensions.xwiki.org/xwiki/bin/view/Extension/Environment+Module
> > > > > >
> > > > > > Thanks
> > > > > > -Vincent
> > > > > >
> > > > > > > Any suggestions?
> > > > > > >
> > > > > > > Thanks in advance,
> > > > > > > Giordano.
> > > > > >