You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by zhouxu <zh...@docworks.cn> on 2019/06/15 16:42:41 UTC

oak integration Solr without osgi

hello expert! Without using sling/felix, we  embedded Oak(using MongoDB as
document store) into spring based web application(springboot). Is there a
way for oak to integrate Solr  without osgi?




--
Sent from: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Users-f510167.html

Re: oak integration Solr without osgi

Posted by Robert Munteanu <ro...@apache.org>.
Hi,

On Tue, 2019-06-18 at 01:03 -0500, zhouxu wrote:
> we try to create repository like thest code , This causes the
> following
> errors.
> 
> error:
>       java.lang.NoClassDefFoundError:
> org/apache/solr/client/solrj/SolrServer

Looks like you're missing some solr jars from your classpath. A Maven
central search will tell you what you need to add to your classpath

  https://search.maven.org/search?q=fc:org%2Fapache%2Fsolr%2Fclient%2Fsolrj%2FSolrServer

Robert


Re: oak integration Solr without osgi

Posted by zhouxu <zh...@docworks.cn>.
we try to create repository like thest code , This causes the following
errors.

error:
      java.lang.NoClassDefFoundError:
org/apache/solr/client/solrj/SolrServer

	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at
cn.amberdata.afc.domain.repository.AfRepositoryManager.<clinit>(AfRepositoryManager.java:144)
	at
cn.amberdata.afc.domain.session.AfSessionManager.getRepository(AfSessionManager.java:59)
	at
cn.amberdata.afc.domain.session.AfSessionManager.<init>(AfSessionManager.java:48)
	at cn.amberdata.afc.domain.query.SolrTest.setUp(SolrTest.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException:
org.apache.solr.client.solrj.SolrServer


code:

   RemoteSolrServerProvider remoteSolrServerProvider=null;
            String solrURL="http://localhost:8983/solr";
            SolrServerConfiguration<RemoteSolrServerProvider>
remoteSolrServerProviderSolrServerConfiguration =
                    new RemoteSolrServerConfiguration(null, null, 1, 1,
null, 10, 10, solrURL);
            try {
                remoteSolrServerProvider =
remoteSolrServerProviderSolrServerConfiguration.getProvider();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            }

            OakSolrConfigurationProvider configurationProvider = new
OakSolrConfigurationProvider() {
                @Override
                public OakSolrConfiguration getConfiguration() {
                    return new DefaultSolrConfiguration() {
                        @Override
                        public int getRows() {
                            return 50;
                        }
                    };
                }
            };
            SolrQueryIndexProvider solrQueryIndexProvider=new
SolrQueryIndexProvider(remoteSolrServerProvider, configurationProvider);

            if (repository == null) {
                repository = new Jcr(new Oak(documentNodeStore))
                        .with(solrQueryIndexProvider)
                        .with(new NodeStateSolrServersObserver())
                        .with(new
SolrIndexEditorProvider(remoteSolrServerProvider, configurationProvider))
                        .with(new SolrIndexInitializer(false))
                        .createRepository();
            }




--
Sent from: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Users-f510167.html