Multiple instances, wiki out of date?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Multiple instances, wiki out of date?

galo-2
Hi there,

I've been following the instruction from
http://wiki.apache.org/solr/SolrJetty?highlight=%28Multiple%29%7C%28Solr%29%7C%28Webapps%29solr 

to get a few indexes running under the same instance of jetty 6.1.2. If
I use the webapp descriptors as specified in the wiki (with correct
paths, I'm just pasting the example here)..

<Call name="addWebApplication">
  <Arg>/*solr*1/*</Arg>
  <Arg>/your/path/to/the/*solr*.war</Arg>
  <Set name="extractWAR">true</Set>
  <Set
name="defaultsDescriptor">org/mortbay/jetty/servlet/webdefault.xml</Set>
  <Call name="addEnvEntry">
    <Arg>*solr*/home</Arg>
    <Arg type="String">/your/path/to/your/*solr*/home/dir</Arg>
  </Call>
</Call>

<Call name="addWebApplication">
  <Arg>/*solr*2/*</Arg>
  <Arg>/your/path/to/the/*solr*.war</Arg>
  <Set name="extractWAR">true</Set>
  <Set
name="defaultsDescriptor">org/mortbay/jetty/servlet/webdefault.xml</Set>
  <Call name="addEnvEntry">
    <Arg>*solr*/home</Arg>
    <Arg type="String">/your/path/to/your/alternate/*solr*/home/dir</Arg>
  </Call>
</Call>

Jetty complains that:

2007-02-26 18:36:04.874::INFO:  Logging to STDERR via
org.mortbay.log.StdErrLog
2007-02-26 18:36:05.066::WARN:  Config error at <Call
name="addWebApplication"><Arg>/solr1/*</Arg><Arg>/your/path/to/the/solr.war</Arg><Set
name="extractWAR">true</Set><Set
name="defaultsDescriptor">org/mortbay/jetty/servlet/webdefault.xml</Set><Call
name="addEnvEntry"><Arg>solr/home</Arg><Arg
type="String">/your/path/to/your/solr/home/dir</Arg></Call></Call>
2007-02-26 18:36:05.066::WARN:  EXCEPTION
java.lang.IllegalStateException: No Method: <Call
name="addWebApplication"><Arg>/solr1/*</Arg><Arg>/your/path/to/the/solr.war</Arg><Set
name="extractWAR">true</Set><Set
name="defaultsDescriptor">org/mortbay/jetty/servlet/webdefault.xml</Set><Call
name="addEnvEntry"><Arg>solr/home</Arg><Arg
type="String">/your/path/to/your/solr/home/dir</Arg></Call></Call> on
class org.mortbay.jetty.Server
        at org.mortbay.xml.XmlConfiguration.call(XmlConfiguration.java:548)
        at
org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:241)
        at
org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:919)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)
2007-02-26 18:36:05.068::INFO:  Shutdown hook executing
2007-02-26 18:36:05.068::INFO:  Shutdown hook complete

I've been looking at the Jetty API and it looks like those methods are
deprecated in the latest versions of Jetty. Anyway, I can get several
instances to run together using the descriptor shown below and several
war files

<Call name="addLifeCycle">
  <Arg>
    <New class="org.mortbay.jetty.deployer.WebAppDeployer">
      <Set name="contexts"><Ref id="Contexts"/></Set>
      <Set name="webAppDir"><SystemProperty name="jetty.home"
default="."/>/webapps-plus</Set>
      <Set name="parentLoaderPriority">false</Set>
      <Set name="extract">true</Set>
      <Set name="allowDuplicates">false</Set>
      <Set name="defaultsDescriptor"><SystemProperty name="jetty.home"
default="."/>/etc/webdefault.xml</Set>
    </New>
  </Arg>
</Call>

This is good enough for me but the problem then is that all point to the
same data/index folder sharing the same index and I need them to use
different indexes. The question is, how can you configure solr.home
differently for each of the solr instances deployed in the webapps-plus
folder?

It would be equally valid if there is a way of fixing the xml in the
wiki so individual war files can be specified passing a different
solr.home to each..

thanks,

galo.

Reply | Threaded
Open this post in threaded view
|

Re: Multiple instances, wiki out of date?

Chris Hostetter-3

Galo: are you using plain vanilla Jetty, or are you using Jetty Plus?

the examples for "Configuring Solr Home with JNDI" and "Multiple Solr
Webapps" both require Jetty Plus (because the JNDI support only exists in
the extra libraries JettyPlus provides)

That may explain the missing method call when trying to do addEnvEntry

if you can't use Jetty Plus to have JNDI support, or if the latest version
of Jetty doesn't support JNDI anymore (can't imagine that would be the
case) then you might be able to find a way to set teh solr.solr.home
system property on a per webapp basis ... how to do that in a Jetty config
may be a better question for the Jetty user community.

(if you do discover that the config syntax for JNDI has changed
significantly in the latest versions of Jetty, by all means please update
the wiki ... we'd probably want seperate sections for the different
versions since not everyone will be running the latest, but it's still
good info to have)





-Hoss