From: Anders B. O. <ab...@ds...> - 2011-07-25 14:33:10
|
Dear mailing list, I am tasked with setting up eXist for production for a few small web projects of ours. In order to do this I want to setup an installation of eXist configured to only contain exactly what is needed for one project and completely tailored to that one project. For the first project I am configuring it for a thesaurus that we are going to put online as part of the danish language resource website sproget.dk. The project is relatively simple and consists of the following structure in the database: /synordbog/css/syn.css /synordbog/xml/syn.xml /synordbog/xql/index.xql /synordbog/xql/search.xql /synordbog/xsl/syn.xsl index.xql produces a complete listing of all entries in the thesaurus and search.xql produces a listing of entries matching a search phrase. search.xql uses a lucene index. I want to cut things down to the bare minimum so first thing I do is run standalone (bin/server.sh for testing and the wrapper for actual production usage). At this point all XQueries run fine when called directly. I want to setup URL rewriting such that /search?q=X will be rewritten to /synordbog/xql/search.xql?query=X and / will be rewritten to /synordbog/xql/index.xql. In order to do this I first of all enable the URL rewriting filter in server.xml by setting these lines: <filter enabled="yes" path="/*" class="org.exist.http.urlrewrite.XQueryURLRewrite"> <param name="config" value="controller-config.xml"/> </filter> Next I copy webapp/WEB-INF/controller-config.xml and webapp/controller.xql to the same dir as server.xml. Doing this I am hoping to have a fully working setup that I can then shave down to the bare minimum. Unfortunately it will no longer execute XQueries nor do XSLT. I have set the log4j level to trace for urlrewriting. These are the messages given in the console: 25 Jul 2011 15:53:38,618 [SocketListener0-4] WARN (ServletHandler.java [handle]:595) - /synordbog/xql/search.xql?query=begynderbog: javax.servlet.ServletException: Failed to initialize request dispatcher to forward request to /synordbog/xql/search.xql at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:42) at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:432) at org.exist.http.urlrewrite.XQueryURLRewrite.doFilter(XQueryURLRewrite.java:303) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) 25 Jul 2011 15:53:38,621 [SocketListener0-4] WARN (HttpConnection.java [exception]:784) - GET /synordbog/xql/search.xql?query=begynderbog HTTP/1.1 java.lang.NullPointerException at org.mortbay.jetty.servlet.WebApplicationHandler.getErrorPage(WebApplicationHandler.java:381) at org.mortbay.jetty.servlet.ServletHttpResponse.sendError(ServletHttpResponse.java:375) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:622) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) And these are the messages given in webapp/WEB-INF/logs/urlurlrewrite.log: 2011-07-25 15:53:38,201 [SocketListener0-4] DEBUG (XQueryURLRewrite.java [configure]:476) - Initialized database 2011-07-25 15:53:38,206 [SocketListener0-4] DEBUG (RewriteConfig.java [configure]:140) - Loading XQueryURLRewrite configuration from controller-config.xml 2011-07-25 15:53:38,218 [SocketListener0-4] TRACE (XQueryURLRewrite.java [doFilter]:178) - /synordbog/xql/search.xql 2011-07-25 15:53:38,225 [SocketListener0-4] DEBUG (XQueryURLRewrite.java [configure]:476) - Initialized database 2011-07-25 15:53:38,228 [SocketListener0-4] TRACE (XQueryURLRewrite.java [doFilter]:206) - Processing request URI: /synordbog/xql/search.xql 2011-07-25 15:53:38,230 [SocketListener0-4] TRACE (XQueryURLRewrite.java [findSource]:671) - Found controller file: /home/abo/programs/eXist/controller.xql 2011-07-25 15:53:38,405 [SocketListener0-4] DEBUG (XQueryURLRewrite.java [declareVariables]:752) - exist:path = /synordbog/xql/search.xql exist:resource = search.xql exist:controller = 2011-07-25 15:53:38,613 [SocketListener0-4] TRACE (XQueryURLRewrite.java [logResult]:508) - <ignore xmlns="http://exist.sourceforge.net/NS/exist"> <cache-control cache="yes"/> </ignore> 2011-07-25 15:53:38,614 [SocketListener0-4] TRACE (XQueryURLRewrite.java [doFilter]:292) - URLRewrite took 396ms. 2011-07-25 15:53:38,614 [SocketListener0-4] TRACE (XQueryURLRewrite.java [doRewrite]:427) - Forwarding to target: null url: /synordbog/xql/search.xql 2011-07-25 15:53:38,617 [SocketListener0-4] ERROR (XQueryURLRewrite.java [doFilter]:359) - Failed to initialize request dispatcher to forward request to /synordbog/xql/search.xql javax.servlet.ServletException: Failed to initialize request dispatcher to forward request to /synordbog/xql/search.xql at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:42) at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:432) at org.exist.http.urlrewrite.XQueryURLRewrite.doFilter(XQueryURLRewrite.java:303) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) I am aware that it is probably controller-config.xml and/or controller.xql that is incorrectly set up, but after having read all of the documentation for URL rewriting and search google for help multiple times all I have left now is to ask for help here. What I really don't understand is that it seems to not know what to do with XQueries now, despite controller-config.xml having a forward for them configured as: <forward pattern=".*\.(xql|xqy|xquery)$" servlet="XQueryServlet"/> Can anybody help me understand why this doesn't work? -- Anders Bruun Olsen It-ansvarlig Det Danske Sprog- og Litteraturselskab (Society for Danish Language and Literature) |
From: Adam R. <ad...@ex...> - 2011-08-02 15:43:19
|
On 25 July 2011 14:02, Anders Bruun Olsen <ab...@ds...> wrote: > Dear mailing list, > I am tasked with setting up eXist for production for a few small web > projects of ours. In order to do this I want to setup an installation of > eXist configured to only contain exactly what is needed for one project and > completely tailored to that one project. For the first project I am > configuring it for a thesaurus that we are going to put online as part of > the danish language resource website sproget.dk. > The project is relatively simple and consists of the following structure in > the database: > /synordbog/css/syn.css > /synordbog/xml/syn.xml > /synordbog/xql/index.xql > /synordbog/xql/search.xql > /synordbog/xsl/syn.xsl > index.xql produces a complete listing of all entries in the thesaurus and > search.xql produces a listing of entries matching a search phrase. > search.xql uses a lucene index. > I want to cut things down to the bare minimum so first thing I do is run > standalone (bin/server.sh for testing and the wrapper for actual production > usage). At this point all XQueries run fine when called directly. You could also use the Ant target dist-minimal to get a minimal version of eXist-db server which will only run in server standalone mode. > I want to setup URL rewriting such that /search?q=X will be rewritten to > /synordbog/xql/search.xql?query=X and / will be rewritten to > /synordbog/xql/index.xql. In order to do this I first of all enable the URL > rewriting filter in server.xml by setting these lines: > <filter enabled="yes" path="/*" > class="org.exist.http.urlrewrite.XQueryURLRewrite"> > <param name="config" value="controller-config.xml"/> > </filter> If you are using standalone mode then the config files are in tools/jetty/etc and not the usual WEB-INF/webapp or root of $EXIST_HOME folder. I think most of your comments below, will be resolvable by my statement above... Cheers Adam. > Next I copy webapp/WEB-INF/controller-config.xml and webapp/controller.xql > to the same dir as server.xml. Doing this I am hoping to have a fully > working setup that I can then shave down to the bare minimum. > Unfortunately it will no longer execute XQueries nor do XSLT. I have set the > log4j level to trace for urlrewriting. These are the messages given in the > console: > 25 Jul 2011 15:53:38,618 [SocketListener0-4] WARN (ServletHandler.java > [handle]:595) - /synordbog/xql/search.xql?query=begynderbog: > javax.servlet.ServletException: Failed to initialize request dispatcher to > forward request to /synordbog/xql/search.xql > at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:42) > at > org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:432) > at > org.exist.http.urlrewrite.XQueryURLRewrite.doFilter(XQueryURLRewrite.java:303) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) > at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > 25 Jul 2011 15:53:38,621 [SocketListener0-4] WARN (HttpConnection.java > [exception]:784) - GET /synordbog/xql/search.xql?query=begynderbog HTTP/1.1 > java.lang.NullPointerException > at > org.mortbay.jetty.servlet.WebApplicationHandler.getErrorPage(WebApplicationHandler.java:381) > at > org.mortbay.jetty.servlet.ServletHttpResponse.sendError(ServletHttpResponse.java:375) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:622) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) > at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > And these are the messages given in webapp/WEB-INF/logs/urlurlrewrite.log: > 2011-07-25 15:53:38,201 [SocketListener0-4] DEBUG (XQueryURLRewrite.java > [configure]:476) - Initialized database > 2011-07-25 15:53:38,206 [SocketListener0-4] DEBUG (RewriteConfig.java > [configure]:140) - Loading XQueryURLRewrite configuration from > controller-config.xml > 2011-07-25 15:53:38,218 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [doFilter]:178) - /synordbog/xql/search.xql > 2011-07-25 15:53:38,225 [SocketListener0-4] DEBUG (XQueryURLRewrite.java > [configure]:476) - Initialized database > 2011-07-25 15:53:38,228 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [doFilter]:206) - Processing request URI: /synordbog/xql/search.xql > 2011-07-25 15:53:38,230 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [findSource]:671) - Found controller file: > /home/abo/programs/eXist/controller.xql > 2011-07-25 15:53:38,405 [SocketListener0-4] DEBUG (XQueryURLRewrite.java > [declareVariables]:752) - > exist:path = /synordbog/xql/search.xql > exist:resource = search.xql > exist:controller = > 2011-07-25 15:53:38,613 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [logResult]:508) - <ignore xmlns="http://exist.sourceforge.net/NS/exist"> > <cache-control cache="yes"/> > </ignore> > 2011-07-25 15:53:38,614 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [doFilter]:292) - URLRewrite took 396ms. > 2011-07-25 15:53:38,614 [SocketListener0-4] TRACE (XQueryURLRewrite.java > [doRewrite]:427) - Forwarding to target: null url: > /synordbog/xql/search.xql > 2011-07-25 15:53:38,617 [SocketListener0-4] ERROR (XQueryURLRewrite.java > [doFilter]:359) - Failed to initialize request dispatcher to forward request > to /synordbog/xql/search.xql > javax.servlet.ServletException: Failed to initialize request dispatcher to > forward request to /synordbog/xql/search.xql > at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:42) > at > org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:432) > at > org.exist.http.urlrewrite.XQueryURLRewrite.doFilter(XQueryURLRewrite.java:303) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) > at > org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > I am aware that it is probably controller-config.xml and/or controller.xql > that is incorrectly set up, but after having read all of the documentation > for URL rewriting and search google for help multiple times all I have left > now is to ask for help here. > What I really don't understand is that it seems to not know what to do with > XQueries now, despite controller-config.xml having a forward for them > configured as: > <forward pattern=".*\.(xql|xqy|xquery)$" servlet="XQueryServlet"/> > Can anybody help me understand why this doesn't work? > -- > Anders Bruun Olsen > It-ansvarlig > Det Danske Sprog- og Litteraturselskab > (Society for Danish Language and Literature) > > > ------------------------------------------------------------------------------ > Storage Efficiency Calculator > This modeling tool is based on patent-pending intellectual property that > has been used successfully in hundreds of IBM storage optimization engage- > ments, worldwide. Store less, Store more with what you own, Move data to > the right place. Try It Now! > http://www.accelacomm.com/jaw/sfnl/114/51427378/ > _______________________________________________ > Exist-open mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-open > > -- Adam Retter eXist Developer { United Kingdom } ad...@ex... irc://irc.freenode.net/existdb |
From: ch.g <chr...@e-...> - 2011-09-24 19:00:18
|
Hi, Facing similar issue. Did you manage to make this work ? Cheers, Christophe -- View this message in context: http://exist.2174344.n4.nabble.com/Production-and-URL-Rewriting-tp3692970p3839936.html Sent from the exist-open mailing list archive at Nabble.com. |
From: Anders B. O. <ab...@ds...> - 2011-09-25 18:13:50
|
2011/9/24 ch.g <chr...@e-...> > > Facing similar issue. Did you manage to make this work ? > Not yet. I've decided to go a different route. Instead of doing standalone, which is apparently somewhat hardcoded, I take a normal setup (port 8080), change the jetty binding to use the root (/) instead of /exist and then start removing stuff like the demo site and weeding out in the controllers to remove unneeded stuff. So far this works for me, but I have not yet put it into production. A completely unrelated hint: grab the newest 64-bit wrapper from their site if you run on a 64-bit Linux. The bundled version gave me all sorts of problems on virtualized Ubuntu Server 10.04 instances. After switching to the 64-bit community edition of wrapper it runs without problems. -- Anders Bruun Olsen It-ansvarlig Det Danske Sprog- og Litteraturselskab (Society for Danish Language and Literature) |