首页 > 解决方案 > java.lang.ClassNotFoundException:org.eclipse.jetty.plus.jndi.Resource 在 docker 内运行 Solr 并修改 jetty.xml

问题描述

我正在使用以下 docker-compose.yml 在 docker 中运行 Solr。

version: "3"
services:
  solr:
    image: solr:8.0.0
    ports:
      - "8983:8983"
    volumes:
      - ./myData:/var/solr
      - ./Config/jetty.xml:/opt/solr-8.0.0/server/etc/jetty.xml
    command:
      - solr-precreate
      - gettingstarted
    container_name: solr

我正在尝试为此处提到的所有内核提供通用 MySQL 配置。

这是我在 jetty.xml 中添加的配置

<New id="jdbc" class="org.eclipse.jetty.plus.jndi.Resource">
    <Arg>jdbc/myconfig</Arg>
    <Arg>
        <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
            <Set name="Url">jdbc:mysql://ip:port/myDB</Set>
            <Set name="User">user</Set>
            <Set name="Password">password</Set>
        </New>
    </Arg>
</New>

但是,当我尝试使用它运行 Solr 时,我收到以下错误。

java.security.PrivilegedActionException: null
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1511) [jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:220) [start.jar:9.4.14.v20181114]
    at org.eclipse.jetty.start.Main.start(Main.java:490) [start.jar:9.4.14.v20181114]
    at org.eclipse.jetty.start.Main.main(Main.java:77) [start.jar:9.4.14.v20181114]
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.plus.jndi.Resource
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at org.eclipse.jetty.util.Loader.loadClass(Loader.java:65) ~[jetty-util-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:834) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:478) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:413) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:311) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1558) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1512) ~[jetty-xml-9.4.14.v20181114.jar:9.4.14.v20181114]
    ... 9 more

有什么需要补充的吗?

标签: javadockersolrjetty-9

解决方案


推荐阅读