Hi,
On 18.12.2008, at 15:08, Thomas Mortagne wrote:
On Thu, Dec 18, 2008 at 3:03 PM, Juergen Lorenz Simon
<simon(a)webtecc.com
wrote:
Hi,
On 18.12.2008, at 14:37, Thomas Mortagne wrote:
On Thu, Dec 18, 2008 at 1:54 PM, Juergen Lorenz
Simon <simon(a)webtecc.com
wrote:
Hi Thomas,
no, I do not create a context myself. I'm running this in Eclipse
But where do you get the XWikiContext you give to
createExternalURL() ?
When the indexing plugin is instantiated I grab the context:
public IndexUpdater(XWiki wiki, XWikiContext context) {
this.xwiki = wiki;
this.context = context;
}
Which is obtained from XWiki at plugin initialization time:
public void init(XWikiContext context) {
...
// initialize the actual plugin
indexUpdater = new IndexUpdater(context.getWiki(), context);
indexUpdater.start();
// Hook into the document change notifications
DocChangeRule docChangeRule = new DocChangeRule(indexUpdater);
context
.getWiki().getNotificationManager().addGeneralRule(docChangeRule);
}
Do you think I should use the context that comes in the notify()
method instead?
No need, even if it's cleaner but it should be exactly the same java
object I think, so I don't understand why your context's request
object is wrong.
Could you send you full stack trace ?
Of course. But it's exactly as it was:
java.lang.NullPointerException
at com.xpn.xwiki.XWiki.getServletPath(XWiki.java:4317)
at
com
.xpn
.xwiki
.web.XWikiServletURLFactory.addServletPath(XWikiServletURLFactory.java:
208)
at
com
.xpn
.xwiki
.web.XWikiServletURLFactory.createURL(XWikiServletURLFactory.java:178)
at com.xpn.xwiki.doc.XWikiDocument.getURL(XWikiDocument.java:884)
at com.xpn.xwiki.doc.XWikiDocument.getURL(XWikiDocument.java:898)
at com.xpn.xwiki.doc.XWikiDocument.getURL(XWikiDocument.java:903)
at
com
.kontrast
.vodafone
.portal
.xwiki.plugins.indexer.IndexUpdater.runMainLoop(IndexUpdater.java:192)
at
com
.kontrast
.vodafone
.portal.xwiki.plugins.indexer.IndexUpdater.run(IndexUpdater.java:118)
this fails also, well, it returns null:
String currentServletpath = context.getRequest().getServletPath();
any more ideas? We need the external URL so we can point to Wiki pages
from the index. I could maybe wing it together by constructing the url
in some other way, using the host name from confifuration and some
elaborated guessing on the URL, but that would be brittle and
unpleasant to maintain.
J.