java.lang.ClassNotFoundException: org.eclipse.jetty.Server
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37168817/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
java.lang.ClassNotFoundException: org.eclipse.jetty.Server
提问by foucha
I am trying to run a maven project when I run mvn install everything is ok I got build success qnd when I tried to lunch the project I got the following exception:
当我运行 mvn install 一切正常时,我正在尝试运行一个 Maven 项目,当我尝试为该项目提供午餐时,我获得了构建成功 qnd 我得到以下异常:
Exception in thread "main" java.lang.ClassNotFoundException: org.eclipse.jetty.Server
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:86)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:364)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:292)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:248)
at net.es.oscars.wbui.http.WebApp.main(WebApp.java:44)
and when I run mvn dependency:tree I got the following results:
当我运行 mvn dependency:tree 我得到以下结果:
maven-dependency-plugin:2.8:tree (default-cli) @ wbui ---
[INFO] net.es.oscars:wbui:jar:0.0.1-SNAPSHOT
[INFO] +- net.es.oscars:utils:jar:0.0.1-SNAPSHOT:compile
[INFO] | +- net.perfsonar:ps-api:jar:0.5:compile
[INFO] | | +- commons-httpclient:commonhttpclient:jar:3.0.1:compile
[INFO] | | | +- junit:junit:jar:3.8.1:compile
[INFO] | | | \- commons-codec:commons-codec:jar:1.2:compile
[INFO] | | +- org.jdom:jdom:jar:1.1:compile
[INFO] | | +- org.jdom:jaxen-jdom:jar:1.0-FCS:compile
[INFO] | | +- org.jdom:jaxen-core:jar:1.0-FCS:compile
[INFO] | | \- org.jdom:saxpath:jar:1.0-FCS:compile
[INFO] | +- org.jyaml:jyaml:jar:1.3:compile
[INFO] | +- log4j:log4j:jar:1.2.17:compile
[INFO] | +- net.es.oscars:common-logging:jar:0.0.1-SNAPSHOT:compile
[INFO] | | \- gov.lbl:netlogger:jar:4.1.2:compile
[INFO] | +- net.es.oscars:common-soap:jar:0.0.1-SNAPSHOT:compile
[INFO] | +- org.hibernate:hibernate-core:jar:3.3.1.GA:compile
[INFO] | | +- antlr:antlr:jar:2.7.6:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.1:compile
[INFO] | | \- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- org.mortbay.jetty:jetty:jar:6.1.16:compile
[INFO] | | +- org.mortbay.jetty:jetty-util:jar:6.1.16:compile
[INFO] | | \- org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile
[INFO] | +- org.opensymphony.quartz:quartz:jar:1.6.1:compile
[INFO] | +- org.apache.ws.security:wss4j:jar:1.5.8:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.1:compile
[INFO] | | | +- logkit:logkit:jar:1.0.1:compile
[INFO] | | | +- avalon-framework:avalon-framework:jar:4.1.3:compile
[INFO] | | | \- javax.servlet:servlet-api:jar:2.3:compile
[INFO] | | +- org.apache.santuario:xmlsec:jar:1.4.3:compile
[INFO] | | \- xalan:xalan:jar:2.7.1:compile
[INFO] | | \- xalan:serializer:jar:2.7.1:compile
[INFO] | +- org.apache.cxf:cxf-rt-bindings-soap:jar:2.2.5:compile
[INFO] | | +- org.apache.cxf:cxf-api:jar:2.2.5:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0.2:compile
[INFO] | | | +- org.apache.ws.commons.schema:XmlSchema:jar:1.4.5:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
[INFO] | | | +- org.codehaus.woodstox:wstx-asl:jar:3.2.9:compile
[INFO] | | | +- org.apache.neethi:neethi:jar:2.0.4:compile
[INFO] | | | \- org.apache.cxf:cxf-common-schemas:jar:2.2.5:compile
[INFO] | | +- org.apache.cxf:cxf-tools-common:jar:2.2.5:compile
[INFO] | | | +- wsdl4j:wsdl4j:jar:1.6.2:compile
[INFO] | | | \- com.sun.xml.bind:jaxb-impl:jar:2.1.12:compile
[INFO] | | +- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.2.5:compile
[INFO] | | | \- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.6:compile
[INFO] | | \- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] | +- org.apache.cxf:cxf-rt-ws-security:jar:2.2.5:compile
[INFO] | | +- org.apache.cxf:cxf-rt-core:jar:2.2.5:compile
[INFO] | | | \- org.springframework:spring-core:jar:2.5.5:compile
[INFO] | | +- org.apache.cxf:cxf-common-utilities:jar:2.2.5:compile
[INFO] | | | +- org.springframework:spring-beans:jar:2.5.5:compile
[INFO] | | | +- org.springframework:spring-context:jar:2.5.5:compile
[INFO] | | | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | | \- commons-lang:commons-lang:jar:2.4:compile
[INFO] | | +- javax.xml.soap:saaj-api:jar:1.3:compile
[INFO] | | \- org.bouncycastle:bcprov-jdk15:jar:1.43:runtime
[INFO] | +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.2.5:compile
[INFO] | | +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-jaxws_2.1_spec:jar:1.0:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] | | +- asm:asm:jar:2.2.3:compile
[INFO] | | +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.2.5:compile
[INFO] | | +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.2.5:compile
[INFO] | | +- org.apache.cxf:cxf-rt-ws-addr:jar:2.2.5:compile
[INFO] | | \- com.sun.xml.messaging.saaj:saaj-impl:jar:1.3.2:compile
[INFO] | +- org.apache.cxf:cxf-rt-transports-http:jar:2.2.5:compile
[INFO] | | \- org.springframework:spring-web:jar:2.5.5:compile
[INFO] | \- org.apache.cxf:cxf-rt-transports-http-jetty:jar:2.2.5:compile
[INFO] | \- org.apache.geronimo.specs:geronimo-servlet_2.5_spec:jar:1.2:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] +- net.es.oscars:oscars-war:war:0.0.1-SNAPSHOT:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.7:compile
[INFO] +- org.eclipse.jetty:jetty-server:jar:9.3.0.M0:compile
[INFO] | +- org.eclipse.jetty:jetty-http:jar:9.3.0.M0:compile
[INFO] | | \- org.eclipse.jetty:jetty-util:jar:9.3.0.M0:compile
[INFO] | \- org.eclipse.jetty:jetty-io:jar:9.3.0.M0:compile
[INFO] +- org.eclipse.jetty:jetty-webapp:jar:9.3.0.M0:compile
[INFO] | \- org.eclipse.jetty:jetty-xml:jar:9.3.0.M0:compile
[INFO] \- org.eclipse.jetty:jetty-servlet:jar:9.3.0.M0:compile
[INFO] \- org.eclipse.jetty:jetty-security:jar:9.3.0.M0:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
and this is my pom.xml file :
这是我的 pom.xml 文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>wbui</artifactId>
<name>OSCARS WBUI</name>
<parent>
<groupId>net.es.oscars</groupId>
<artifactId>OSCARS</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<properties>
<jetty.version>9.3.0.M0</jetty.version>
</properties>
<!-- puts all code & libraries in one jar -->
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- OSCARS utilities (from local repository) -->
<dependency>
<groupId>net.es.oscars</groupId>
<artifactId>utils</artifactId>
<version>${oscars.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- kludge to get dependency on local module oscars-war without
including war file -->
<dependency>
<groupId>net.es.oscars</groupId>
<artifactId>oscars-war</artifactId>
<version>${oscars.version}</version>
<type>war</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<!-- Jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.3.0.M0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>9.3.0.M0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.0.M0</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- puts all code & libraries in one jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedClassifierName>one-jar</shadedClassifierName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<artifactSet>
<excludes>
<exclude>org.apache.geronimo.specs:geronimo-servlet_2.5_spec</exclude>
<exclude>org.mortbay.jetty:servlet-api</exclude>
<exclude>javax.servlet:servlet-api</exclude>
</excludes>
</artifactSet>
<transformers>
<!-- add Main-Class to manifest file -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>net.es.oscars.wbui.http.WebApp</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/com.sun.tools.xjc.Plugin</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/cxf/cxf.extension</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/extensions.xml</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/cxf/extensions.xml</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/cxf/bus-extensions.txt</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/cxf/bus-extensions.xml</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/wsdl.plugin.xml</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/tools.service.validator.xml</resource>
</transformer>
<transformer implementation="org.apache.cxf.maven.PluginTransformer">
<resource>META-INF/tools-plugin.xml</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/cxf/java2wsbeans.xml</resource>
</transformer>
<transformer implementation="org.apache.cxf.maven.CXFAllTransformer" />
</transformers>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-buildtools</artifactId>
<version>2.2.12</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</plugin>
<!-- specifically use java 1.5 to compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
package net.es.oscars.wbui.http;
import java.util.Map;
import java.io.File;
import java.io.FileInputStream;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.xml.XmlConfiguration;
import net.es.oscars.utils.config.*;
import net.es.oscars.utils.svc.ServiceNames;
public class WebApp {
public static ContextConfig cc = null;
public static void main(String[] args) throws Exception {
cc = ContextConfig.getInstance(ServiceNames.SVC_WBUI);
cc.setServiceName(ServiceNames.SVC_WBUI);
String context = "PRODUCTION";
if (args.length > 0) {
context = args[1];
}
String warFile = null;
String warTempDir = null;
Server server = new Server();
cc.setContext(context);
System.setProperty("context",context);
System.out.println("starting WBUI with context "+ context);
try {
cc.loadManifest(ServiceNames.SVC_WBUI, ConfigDefaults.MANIFEST); // manifest.yaml
cc.setLog4j();
String configFile = cc.getFilePath(ConfigDefaults.CONFIG);
Map config = ConfigHelper.getConfiguration(configFile);
Map http = (Map) config.get("http");
warFile = (String) http.get("warFile");
warTempDir = (String) http.get("warTempDir");
String jettyConf = cc.getFilePath("jetty.xml");
XmlConfiguration configuration = new XmlConfiguration(new FileInputStream(jettyConf));
configuration.configure(server);
} catch (ConfigException ex) {
System.out.println("caught ConfigurationException " + ex.getMessage());
System.exit(-1);
}
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/OSCARS");
webapp.setWar(warFile);
if(warTempDir != null && !warTempDir.equals("")){
webapp.setTempDirectory(new File(warTempDir));
}
server.setHandler(webapp);
server.start();
server.join();
}
}
so any idea how to fix this problem !!!!
所以知道如何解决这个问题!!!!
采纳答案by Joakim Erdfelt
Your dependency:tree
has an ancient version of Jetty.
你dependency:tree
有一个古老版本的 Jetty。
org.mortbay.jetty:jetty:jar:6.1.16:compile
That's not going to work.
那是行不通的。
You'll need to fix net.es.oscars:utils:jar
to not use that ancient, long since EOL (End of Life) version of Jetty.
您需要修复net.es.oscars:utils:jar
以不使用自 EOL(生命周期结束)版本的 Jetty 以来很久的古老版本。
Your pom.xml
has a reference to an unstable milestone release
你pom.xml
有一个不稳定的里程碑版本的参考
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.3.0.M0</version>
</dependency>
Use a stable release version of Jetty.
使用稳定的 Jetty 发行版。
Look at https://www.eclipse.org/jetty/download.htmlto see what's stable (milestone releases are never listed there)
查看https://www.eclipse.org/jetty/download.html看看什么是稳定的(里程碑版本从未在那里列出)
Also see the Jetty Documentation for the overall list of major jetty versions. https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html
另请参阅 Jetty 文档以获取主要码头版本的整体列表。https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html
As of the time of this answer, the latest stable release version is 9.4.18.v20190429
截至本回答发布时,最新的稳定版本是 9.4.18.v20190429
As for the java.lang.ClassNotFoundException
, you'll need to fix your dependencies first. If the problem still persists after fixing your dependencies, consider posting how you create your classloaders, their hierarchy, and how you use XmlConfiguration
(and from which classloader).
至于java.lang.ClassNotFoundException
,您需要先修复您的依赖项。如果修复依赖项后问题仍然存在,请考虑发布您如何创建类加载器、它们的层次结构以及如何使用XmlConfiguration
(以及来自哪个类加载器)。