Chapter 1, Solr Environment Construction

Here, solr runs with tomcat, for solr6+, tomcat8+&jdk8+ is required

1. Download the required software

 Solr6.1.0jdk1.8.0_102apache-tomcat-8.5.5

 

2. Configure the jdk that Tomcat runs on

Edit tomcat's startup script bin/startup.bat

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_102

 

 

3. Configure the deployment file solr.xml

Edit the file in the tomcat directory ( if not, create a new one ): conf\Catalina\localhost\solr.xml

 

<Context path="/solr" docBase="D:\develop\solr\webapp6.1.0" reloadable="false" crossContext="true">
	<Environment name="solr/home" type="java.lang.String" value="D:\develop\solr\home" override="true"/>
</Context>
 in:

 

  • path: project access path, such as http://localhost/ solr /
  • docBase: Solr's web project path
  • Environment: The solr/home variable specifies the directory of solr
  • If you don't do this, you need to modify the web.xml file of the solr project and enable the env-entry configuration in it. Obviously, this method has fewer modifications to solr and is better.

4. Configure the solr/home directory

Create the required solr/home directory according to the previous configuration, such as the D:\develop\solr\home directory above

Copy all files under solr-6.1.0\server\solr to D:\develop\solr\ home

 

5. Verify

At this point, the solr environment is basically completed, start tomcat, and enter the url verification:

http://localhost:8080/solr/index.html

 

6. Anomalies

1) Missing metrics-* related jar packages

 

19-Apr-2017 17:08:43.718 严重 [localhost-startStop-2] org.apache.catalina.core.StandardContext.filterStart Exception starting filter SolrRequestFilter
 java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.newInstance(Class.java:412)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4572)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5215)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.MetricSet
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
	... 20 more
 You can copy the relevant metrics-* packages from server/lib/ in the solr source directory to the lib directory of the web

 

 

2) The log related jar package is missing

19-Apr-2017 17:22:03.890 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter SolrRequestFilter
 java.lang.NoClassDefFoundError: Failed to initialize Apache Solr: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.apache.org/solr/SolrLogging
	at org.apache.solr.servlet.CheckLoggingConfiguration.check(CheckLoggingConfiguration.java:27)
	at org.apache.solr.servlet.BaseSolrFilter.<clinit>(BaseSolrFilter.java:30)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:442)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4572)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5215)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

 You can copy the log related jar package from server/lib/ext in the solr source directory to the lib directory of the web 

 

3) Access Denied 403

HTTP Status 403 - Access to the requested resource has been denied

Comment out the section of the < security-constraint > element in web.xml ( restricting access to solr resources, you can access it if you comment it out ).

 

 

Back to Contents

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327043167&siteId=291194637