|
List Info
Thread: how to run solr in windows & Tomcat5
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-21 14:39:48 |
I input all the source code in winxp sp2 & tomcat 5 in
jBuilder . when I
debug the application always throw Exception like :
org.apache.solr.core.SolrException: Error loading class
'solr.StandardFilterFactory'...
Caused by: java.lang.ClassNotFoundException: ...
such as ort.apache.solr.schema.* all throw this Exception ;I
think those
codes :
public static Class findClass(String cname, String...
subpackages) {
ClassLoader loader =
Thread.currentThread().getContextClassLoader();
if (subpackages.length==0) subpackages = packages;
// first try cname == full name
try {
return Class.forName(cname, true, loader);
} catch (ClassNotFoundException e) {
String newName=cname;
if (newName.startsWith(project)) {
newName = cname.substring(project.length()+1);
}
for (String subpackage : subpackages) {
try {
String name = base + '.' + subpackage + newName;
log.finest("Trying class name " +
name);
return Class.forName(name, true, loader);
} catch (ClassNotFoundException e1) {
// ignore... assume first exception is best.
}
}
throw new SolrException(500, "Error loading
class '" + cname + "'", e,
false);
}
in org.apache.solr.core.Config class cause the exception;
who can tell me why;Reason is A:cofig file not load?B:tomcat
classloader
cause the exception?C:maybe some liberary not
import?D:OTHERS?...
Thanks!
--
View this message in context: http://www.nabble.com/how+to+ru
n+solr+in+windows+-+Tomcat5-t1658550.html#a4492962
Sent from the Solr - User forum at Nabble.com.
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-21 18:23:08 |
solr.StandardFilterFactory and any solr.* class names you
might see in a
config file are just short alias names for full classnames
in the
org.apache.solr.*.* packages. the method you mention that
throws this
exception is responsible for resolving those names in a set
of packages
passed in by the caller based on what it's expecting to
find. It's
default behavior is to assume the package name in the config
is the full
real class name, if it can't find that then check the known
packages, and
if it still can't find it then throw an exception refering
to the
*orriginal* name.
the fact that you are seeing this exception means that it
can't load any
version of the class, including the fully qualified name
org.apache.solr.analysis.StandardFilterFactory.
YOu said you are running tomcat/solr inside of jBuilder? ..
are there
perhaps some jBuilder settings related to classpath context
you could try
twiddling? ... i don't personally have a lot of experience
running
applications inside of IDEs (particularaly applications like
tomcat, which
themselves manage classpaths for other code.
On Sun, 21 May 2006, tlw_ray wrote:
: Date: Sun, 21 May 2006 07:39:48 -0700 (PDT)
: From: tlw_ray <uo---1 163.com>
: Reply-To: solr-user lucene.apache.org
: To: solr-user lucene.apache.org
: Subject: how to run solr in windows & Tomcat5
:
:
: I input all the source code in winxp sp2 & tomcat 5 in
jBuilder . when I
: debug the application always throw Exception like :
: org.apache.solr.core.SolrException: Error loading class
: 'solr.StandardFilterFactory'...
: Caused by: java.lang.ClassNotFoundException: ...
: such as ort.apache.solr.schema.* all throw this Exception
;I think those
: codes :
: public static Class findClass(String cname, String...
subpackages) {
: ClassLoader loader =
Thread.currentThread().getContextClassLoader();
: if (subpackages.length==0) subpackages = packages;
:
: // first try cname == full name
: try {
: return Class.forName(cname, true, loader);
: } catch (ClassNotFoundException e) {
: String newName=cname;
: if (newName.startsWith(project)) {
: newName = cname.substring(project.length()+1);
: }
: for (String subpackage : subpackages) {
: try {
: String name = base + '.' + subpackage +
newName;
: log.finest("Trying class name " +
name);
: return Class.forName(name, true, loader);
: } catch (ClassNotFoundException e1) {
: // ignore... assume first exception is best.
: }
: }
:
: throw new SolrException(500, "Error loading
class '" + cname + "'", e,
: false);
: }
: in org.apache.solr.core.Config class cause the exception;
: who can tell me why;Reason is A:cofig file not
load?B:tomcat classloader
: cause the exception?C:maybe some liberary not
import?D:OTHERS?...
: Thanks!
:
: --
: View this message in context: http://www.nabble.com/how+to+ru
n+solr+in+windows+-+Tomcat5-t1658550.html#a4492962
: Sent from the Solr - User forum at Nabble.com.
:
-Hoss
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-22 02:44:09 |
thank you Chris Hostetter,I'm fresher in j2ee develop;I
write a servlet
test;it show
package org.apache.solr.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.solr.tst.TestRequestHandler;
import org.apache.solr.schema.*;
import org.apache.solr.analysis.*;
public class ServletClassFrom extends HttpServlet {
private static final String CONTENT_TYPE =
"text/html; charset=GB18030";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request,
HttpServletResponse
response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>ServletClassFrom
</title></head>");
out.println("<body
bgcolor=\"#ffffff\">");
out.println("<p>The servlet has received
a GET. This is the
reply.</p>");
myFromName("org.apache.solr.request.StandardRequestHan
dler",out);
myFromName("org.apache.solr.tst.OldRequestHandler&quo
t;,out);
myFromName("org.apache.solr.tst.TestRequestHandler&qu
ot;,out);
myFromName("org.apache.solr.schema.IntField",out
);
out.println("</body>");
out.println("</html>");
out.close();
}
//Clean up resources
public void destroy() {
}
private void myFromName(String classname,PrintWriter
out){
try{
ClassLoader loader =
Thread.currentThread().getContextClassLoader();
//Thread.currentThread().setContextClassLoader();
//out.println("ClassLoader:"+loader.toString()+
"<br>");
Class cls = loader.loadClass(classname);
// Class cls = Class.forName(classname, true,
loader);
if(cls!=null){out.println("cls"+cls.toString()+
"<br>");}
out.println("<hr>");
} catch (ClassNotFoundException ex) {
out.println("Exception:"+ex.getMessage()+"
<br>");
//ex.printStackTrace(out);
out.println(ex.toString());
out.println("<hr>");
}
}
}
---------------------------------------------------------
result page:
The servlet has received a GET. This is the reply.
clsclass org.apache.solr.request.StandardRequestHandler
clsclass org.apache.solr.tst.OldRequestHandler
clsclass org.apache.solr.tst.TestRequestHandler
clsclass org.apache.solr.schema.IntField
Exception:org.apache.solr.analysis.StandardFilterFactoryjava
.lang.ClassNotFoundException:
org.apache.solr.analysis.StandardFilterFactory
------------------------------------------------------------
--------------------------------------
Why some class can be load others can not ?
when I debug solr/admin/index.jsp the infos:
信息: Initializing Coyote HTTP/1.1 on http-8080
2006-5-22 10:40:28 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1078 ms
2006-5-22 10:40:28 org.apache.catalina.core.StandardService
start
信息: Starting service Catalina
2006-5-22 10:40:28 org.apache.catalina.core.StandardEngine
start
信息: Starting Servlet Engine: Apache Tomcat/5.0.28
2006-5-22 10:40:28 org.apache.catalina.core.StandardHost
start
信息: XML validation disabled
2006-5-22 10:40:29
org.apache.catalina.loader.WebappClassLoader
validateJarFile
信息:
validateJarFile(E:\app.java\OpenSource_Apache\jakarta-tom
cat-5.0.28\webapps\Solr\WebModule1\WEB-INF\lib\servlet
-api-2.4.jar)
- jar not loaded. See Servlet Spec 2.3, section 9.7.2.
Offending class:
javax/servlet/Servlet.class
2006-5-22 10:40:29 org.apache.catalina.core.StandardHost
getDeployer
信息: Create Host deployer for direct deployment ( non-jmx
)
2006-5-22 10:40:30 org.apache.coyote.http11.Http11Protocol
start
信息: Starting Coyote HTTP/1.1 on http-8080
2006-5-22 10:40:30 org.apache.catalina.startup.Catalina
start
信息: Server startup in 1266 ms
2006-5-22 10:40:31 org.apache.solr.core.SolrConfig
initConfig
信息: Loaded SolrConfig: solrconfig.xml
2006-5-22 10:40:32 org.apache.solr.core.RequestHandlers
<init>
信息: adding requestHandler
standard=solr.StandardRequestHandler
2006-5-22 10:40:32
org.apache.solr.request.StandardRequestHandler init
信息: Unused request handler arguments:{}
2006-5-22 10:40:32 org.apache.solr.core.SolrCore
<init>
信息: Opening new SolrCore at solr/, dataDir=solr/data
2006-5-22 10:40:32 org.apache.solr.schema.IndexSchema
readConfig
信息: Reading Solr Schema
2006-5-22 10:40:32 org.apache.solr.schema.IndexSchema
readConfig
信息: Schema name=example
StandardWrapperValve[debugjsp]: Servlet.service() for
servlet debugjsp threw
exception
org.apache.solr.core.SolrException: Error loading class
'solr.StandardFilterFactory'
org.apache.solr.core.SolrException: Error loading class
'solr.StandardFilterFactory'
--
View this message in context: http://www.nabble.com/how+to+ru
n+solr+in+windows+-+Tomcat5-t1658550.html#a4499269
Sent from the Solr - User forum at Nabble.com.
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-22 03:11:05 |
As i said: i don't relaly know a lot about running
applications from
within an IDE -- and for that matter, i don't really know
a lot about
classloaders in general -- but the error you are getting
indicates that
when jBuilder tries to run tomcat, which tries to load Solr
it's not
finding those classes.
Have you tried running tomcat with the precompiled solr.war
*not* in
jBUilder ... just as a standalone java application? if that
works, then
there is probably something wrong with your classpath
configuration in
jBuilder.
: Date: Sun, 21 May 2006 19:44:09 -0700 (PDT)
: From: tlw_ray <uo---1 163.com>
: Reply-To: solr-user lucene.apache.org
: To: solr-user lucene.apache.org
: Subject: Re: how to run solr in windows & Tomcat5
:
:
: thank you Chris Hostetter,I'm fresher in j2ee develop;I
write a servlet
: test;it show
:
: package org.apache.solr.servlet;
:
: import javax.servlet.*;
: import javax.servlet.http.*;
: import java.io.*;
: import java.util.*;
: import org.apache.solr.tst.TestRequestHandler;
: import org.apache.solr.schema.*;
: import org.apache.solr.analysis.*;
: public class ServletClassFrom extends HttpServlet {
: private static final String CONTENT_TYPE =
"text/html; charset=GB18030";
:
: //Initialize global variables
: public void init() throws ServletException {
: }
:
: //Process the HTTP Get request
: public void doGet(HttpServletRequest request,
HttpServletResponse
: response) throws
: ServletException, IOException {
: response.setContentType(CONTENT_TYPE);
: PrintWriter out = response.getWriter();
: out.println("<html>");
:
out.println("<head><title>ServletClassFrom
</title></head>");
: out.println("<body
bgcolor=\"#ffffff\">");
: out.println("<p>The servlet has
received a GET. This is the
: reply.</p>");
:
:
myFromName("org.apache.solr.request.StandardRequestHan
dler",out);
:
myFromName("org.apache.solr.tst.OldRequestHandler&quo
t;,out);
:
myFromName("org.apache.solr.tst.TestRequestHandler&qu
ot;,out);
:
myFromName("org.apache.solr.schema.IntField",out
);
:
: out.println("</body>");
: out.println("</html>");
: out.close();
: }
:
: //Clean up resources
: public void destroy() {
: }
: private void myFromName(String classname,PrintWriter
out){
: try{
: ClassLoader loader =
Thread.currentThread().getContextClassLoader();
: //Thread.currentThread().setContextClassLoader();
:
//out.println("ClassLoader:"+loader.toString()+
"<br>");
: Class cls = loader.loadClass(classname);
: // Class cls = Class.forName(classname, true,
loader);
:
if(cls!=null){out.println("cls"+cls.toString()+
"<br>");}
: out.println("<hr>");
: } catch (ClassNotFoundException ex) {
:
out.println("Exception:"+ex.getMessage()+"
<br>");
: //ex.printStackTrace(out);
: out.println(ex.toString());
: out.println("<hr>");
: }
: }
: }
: ---------------------------------------------------------
: result page:
: The servlet has received a GET. This is the reply.
: clsclass org.apache.solr.request.StandardRequestHandler
: clsclass org.apache.solr.tst.OldRequestHandler
: clsclass org.apache.solr.tst.TestRequestHandler
: clsclass org.apache.solr.schema.IntField
:
Exception:org.apache.solr.analysis.StandardFilterFactoryjava
.lang.ClassNotFoundException:
: org.apache.solr.analysis.StandardFilterFactory
:
------------------------------------------------------------
--------------------------------------
: Why some class can be load others can not ?
: when I debug solr/admin/index.jsp the infos:
:
: 信息: Initializing Coyote HTTP/1.1 on http-8080
:
: 2006-5-22 10:40:28 org.apache.catalina.startup.Catalina
load
:
: 信息: Initialization processed in 1078 ms
:
: 2006-5-22 10:40:28
org.apache.catalina.core.StandardService start
:
: 信息: Starting service Catalina
:
: 2006-5-22 10:40:28 org.apache.catalina.core.StandardEngine
start
:
: 信息: Starting Servlet Engine: Apache Tomcat/5.0.28
:
: 2006-5-22 10:40:28 org.apache.catalina.core.StandardHost
start
:
: 信息: XML validation disabled
:
: 2006-5-22 10:40:29
org.apache.catalina.loader.WebappClassLoader
: validateJarFile
:
: 信息:
:
validateJarFile(E:\app.java\OpenSource_Apache\jakarta-tom
cat-5.0.28\webapps\Solr\WebModule1\WEB-INF\lib\servlet
-api-2.4.jar)
: - jar not loaded. See Servlet Spec 2.3, section 9.7.2.
Offending class:
: javax/servlet/Servlet.class
:
: 2006-5-22 10:40:29 org.apache.catalina.core.StandardHost
getDeployer
:
: 信息: Create Host deployer for direct deployment (
non-jmx )
:
: 2006-5-22 10:40:30 org.apache.coyote.http11.Http11Protocol
start
:
: 信息: Starting Coyote HTTP/1.1 on http-8080
:
: 2006-5-22 10:40:30 org.apache.catalina.startup.Catalina
start
:
: 信息: Server startup in 1266 ms
:
: 2006-5-22 10:40:31 org.apache.solr.core.SolrConfig
initConfig
:
: 信息: Loaded SolrConfig: solrconfig.xml
:
: 2006-5-22 10:40:32 org.apache.solr.core.RequestHandlers
<init>
:
: 信息: adding requestHandler
standard=solr.StandardRequestHandler
:
: 2006-5-22 10:40:32
org.apache.solr.request.StandardRequestHandler init
:
: 信息: Unused request handler arguments:{}
:
: 2006-5-22 10:40:32 org.apache.solr.core.SolrCore
<init>
:
: 信息: Opening new SolrCore at solr/, dataDir=solr/data
:
: 2006-5-22 10:40:32 org.apache.solr.schema.IndexSchema
readConfig
:
: 信息: Reading Solr Schema
:
: 2006-5-22 10:40:32 org.apache.solr.schema.IndexSchema
readConfig
:
: 信息: Schema name=example
:
: StandardWrapperValve[debugjsp]: Servlet.service() for
servlet debugjsp threw
: exception
:
: org.apache.solr.core.SolrException: Error loading class
: 'solr.StandardFilterFactory'
:
: org.apache.solr.core.SolrException: Error loading class
: 'solr.StandardFilterFactory'
:
: --
: View this message in context: http://www.nabble.com/how+to+ru
n+solr+in+windows+-+Tomcat5-t1658550.html#a4499269
: Sent from the Solr - User forum at Nabble.com.
:
-Hoss
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-29 02:57:12 |
Oh.I'v tried run tomcat with the precompiled solr.war.When
visit
http://localhost:80
80/solr/admin/ always show the page:
------------------------------------------------------------
------------------------------------------------------------
-------
type Exception report
message
description The server encountered an internal error () that
prevented it
from fulfilling this request.
exception
javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageExcept
ion(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageExceptio
n(PageContextImpl.java:758)
org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:2
72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.j
ava:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802
)
org.apache.jasper.servlet.JspServletWrapper.service(JspServl
etWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServ
let.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.jav
a:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802
)
root cause
java.lang.NoClassDefFoundError
org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:6
7)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.j
ava:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802
)
org.apache.jasper.servlet.JspServletWrapper.service(JspServl
etWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServ
let.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.jav
a:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802
)
------------------------------------------------------------
-----------------------------------------------------------
--
View this message in context: http://www.nabble.com/how+to+ru
n+solr+in+windows+-+Tomcat5-t1658550.html#a4605354
Sent from the Solr - User forum at Nabble.com.
|
|
| how to run solr in windows & Tomcat5 |

|
2006-05-29 20:15:33 |
: Oh.I'v tried run tomcat with the precompiled
solr.war.When visit
: http://localhost:80
80/solr/admin/ always show the page:
: root cause
:
: java.lang.NoClassDefFoundError
:
org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:6
7)
...did you look at the tomcat logs directory to see if there
were any
errors when the server tried to start itself?
I'm guessing the problem is that on startup it couldn't
find your
solrconfig.xml file (or your schema.xml) so the core classes
couldn't be
initialized, so when you tried to load the page those
classes can't be
found. Where do you have your config files? is there a
"solr/" directory
in the current working directory when you start the server,
or are you
setting the solr.solr.home system property, or using the
recently added
(but not yet well documented) jndi options for specifying
solr.home?
using the following steps, i was able to start up solr
server using the
example configs (copied into my current working directory)
and access it
at http://localhost:80
80/solr/admin/ ...
laptop:~/tmp> mkdir solr-tomcat
laptop:~/tmp> cd solr-tomcat/
laptop:~/tmp/solr-tomcat> wget http://www.ibiblio
.org/pub/mirrors/apache/tomcat/tomcat-5/v5.5.17/bin/apache-t
omcat-5.5.17.zip > & /dev/null
laptop:~/tmp/solr-tomcat> wget http://people.apache.org/dist/lucene/solr/n
ightly/solr-2006-05-29.zip > & /dev/null
laptop:~/tmp/solr-tomcat> unzip apache-tomcat-5.5.17.zip
> & /dev/null
laptop:~/tmp/solr-tomcat> unzip solr-2006-05-29.zip >
& /dev/null
laptop:~/tmp/solr-tomcat> cp
solr-nightly/dist/solr-nightly.war
apache-tomcat-5.5.17/webapps/solr.war
laptop:~/tmp/solr-tomcat> cp -r solr-nightly/example/solr
.
laptop:~/tmp/solr-tomcat> chmod a+x
apache-tomcat-5.5.17/bin/*
laptop:~/tmp/solr-tomcat>
./apache-tomcat-5.5.17/bin/startup.sh > & /dev/null
...if it can't find your configs, you'll see some really
obvious
exceptions in tomcats "localhost" log that look
like this...
SEVERE: StandardWrapper.Throwable
java.lang.ExceptionInInitializerError
at
org.apache.solr.update.SolrIndexConfig.<clinit>(SolrIn
dexConfig.java:35)
at
org.apache.solr.core.SolrCore.<clinit>(SolrCore.java:7
7)
...
Caused by: java.lang.RuntimeException: Error in
solrconfig.xml
at
org.apache.solr.core.SolrConfig.<clinit>(SolrConfig.ja
va:76)
... 30 more
Caused by: java.lang.RuntimeException: Can't find resource
'solrconfig.xml' in classpath or 'solr/conf/',
cwd=/home/hossman/tmp/solr-tomcat
...
SEVERE: Servlet /solr threw load() exception
java.lang.ExceptionInInitializerError
-Hoss
|
|
[1-6]
|
|