You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Mark Bennett <ma...@lucidworks.com> on 2013/04/09 06:33:20 UTC

non-default Jetty jars under Solr

Jetty question very specific to Solr, have been around and around with Google and Jetty doc.

Drafting a simple patch for SOLR-4431 so that /cloud redirects to /solr/#/~cloud

What's working:

	Added jetty-rewrite to solr/example/ivy.xml so that I'm now getting example/lib/jetty-rewrite-8.1.8.v20121106.jar

	Added rewrite rule to jetty.xml, references class org.eclipse.jetty.rewrite.handler.RewriteHandler


What's *almost* working:

	If I just java -jar start.jar, I get a class not found for RewriteHandler

	If I do java -jar start.jar OPTIONS=default,rewrite, it works, BUT not acceptable for general usage

Where I'm stuck:
	I need to tell Jetty to include "rewrite" in its list of options, so it'll include the new class path.
	Add "rewrite" in such a way that "java -jar start.jar" picks it up.  SEEMS simple enough, but each of the solutions has some problem:

	Add OPTIONS= on the command line: Unacceptable, can't start solr if you forget it.

	Some environment variable… (if it exists), same problem, can't start solr if you forget it.

	Add it to start.config in the start.jar file: No, we don't build that, we download it as a fixed asset in ivy

	Add it to start.ini: No, we don't use start.ini, and if I add one, I *think* it's back to requiring a different command line option

	Add something to etc/jetty.xml, BEFORE first reference to RewriteHandler class.  So far no luck, trying to set OPTIONS=… in there.
	Maybe there's some other way???

	Add something to etc/webdefault.xml: might be too late in the startup chain, and haven't found anything that works.

	Add something to contexts/solr-jetty-context.xml: same issues, probably too late, and haven't found anything that works.

So… how do I get rewrite.jar into Jetty?  (or a default OPTIONS that includes rewrite)


Details on some things I've tried (may or may not be helpful, this is stuff that didn't work)

jetty.xml, 1
<Configure id="Server" …>
    <Set name="OPTIONS">default,rewrite,*</Set>

jetty.xml, 2
<Configure id="Server" …>
    <Call name="setAttribute">
      <Arg>OPTIONS</Arg>
      <Arg>default,rewrite,*</Arg>
    </Call>

webdefault.xml
<web-app …> ...
  <servlet>
     <init-param>
       <param-name>OPTIONS</param-name>
       <param-value>default,rewrite,*</param-value>
     </init-param>

solr-jetty-context.xml
<Configure …>
	<Set name="OPTIONS">default,rewrite,*</Set>


--
Mark Bennett / LucidWorks: Search & Big Data / mark.bennett@lucidworks.com
Office: 408-898-4201 / Telecommute: 408-733-0387 / Cell: 408-829-6513








Re: non-default Jetty jars under Solr

Posted by Mark Bennett <ma...@lucidworks.com>.
Found a fix for this:

Created this file:

solr/example/start.ini
---------------------------
OPTIONS=default,rewrite,*

That file just needs to be in the same directory as start.jar

Of course you still need the ivy and jetty.xml stuff, detailed in SOLR-4431


On Apr 8, 2013, at 9:33 PM, Mark Bennett <ma...@lucidworks.com> wrote:

> Jetty question very specific to Solr, have been around and around with Google and Jetty doc.
> 
> Drafting a simple patch for SOLR-4431 so that /cloud redirects to /solr/#/~cloud
> 
> What's working:
> 
> 	Added jetty-rewrite to solr/example/ivy.xml so that I'm now getting example/lib/jetty-rewrite-8.1.8.v20121106.jar
> 
> 	Added rewrite rule to jetty.xml, references class org.eclipse.jetty.rewrite.handler.RewriteHandler
> 
> 
> What's *almost* working:
> 
> 	If I just java -jar start.jar, I get a class not found for RewriteHandler
> 
> 	If I do java -jar start.jar OPTIONS=default,rewrite, it works, BUT not acceptable for general usage
> 
> Where I'm stuck:
> 	I need to tell Jetty to include "rewrite" in its list of options, so it'll include the new class path.
> 	Add "rewrite" in such a way that "java -jar start.jar" picks it up.  SEEMS simple enough, but each of the solutions has some problem:
> 
> 	Add OPTIONS= on the command line: Unacceptable, can't start solr if you forget it.
> 
> 	Some environment variable… (if it exists), same problem, can't start solr if you forget it.
> 
> 	Add it to start.config in the start.jar file: No, we don't build that, we download it as a fixed asset in ivy
> 
> 	Add it to start.ini: No, we don't use start.ini, and if I add one, I *think* it's back to requiring a different command line option
> 
> 	Add something to etc/jetty.xml, BEFORE first reference to RewriteHandler class.  So far no luck, trying to set OPTIONS=… in there.
> 	Maybe there's some other way???
> 
> 	Add something to etc/webdefault.xml: might be too late in the startup chain, and haven't found anything that works.
> 
> 	Add something to contexts/solr-jetty-context.xml: same issues, probably too late, and haven't found anything that works.
> 
> So… how do I get rewrite.jar into Jetty?  (or a default OPTIONS that includes rewrite)
> 
> 
> Details on some things I've tried (may or may not be helpful, this is stuff that didn't work)
> 
> jetty.xml, 1
> <Configure id="Server" …>
>     <Set name="OPTIONS">default,rewrite,*</Set>
> 
> jetty.xml, 2
> <Configure id="Server" …>
>     <Call name="setAttribute">
>       <Arg>OPTIONS</Arg>
>       <Arg>default,rewrite,*</Arg>
>     </Call>
> 
> webdefault.xml
> <web-app …> ...
>   <servlet>
>      <init-param>
>        <param-name>OPTIONS</param-name>
>        <param-value>default,rewrite,*</param-value>
>      </init-param>
> 
> solr-jetty-context.xml
> <Configure …>
> 	<Set name="OPTIONS">default,rewrite,*</Set>
> 
> 
> --
> Mark Bennett / LucidWorks: Search & Big Data / mark.bennett@lucidworks.com
> Office: 408-898-4201 / Telecommute: 408-733-0387 / Cell: 408-829-6513
> 
> 
> 
> 
> 
> 
>