我想向我的web項目添加額外的類路徑。要做到這一點我跟了this guide並建立了一個jetty-env.xml
文件,內容如下java.lang.IllegalArgumentException:類'org.eclipse.jetty.webapp.WebAppContext'的對象的類型不是'org.eclipse.jetty.webapp.WebAppContext'
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="extraClasspath">lib/ivy/</Set>
</Configure>
,並把它放在WEB-INF/
文件夾中。然而,當我啓動碼頭時,我得到以下異常:
2017-04-13 15:55:41.937:WARN:oejw.WebAppContext:main: Failed startup of context [email protected]{/server,file:/C:/Users/foo/project/webapps/server/,STARTING}{C:\Users\foo\project\webapps\server}
java.lang.IllegalArgumentException: Object of class 'org.eclipse.jetty.webapp.WebAppContext' is not of type 'org.eclipse.jetty.webapp.WebAppContext'. Object Class and type Class are from different loaders. in file:/C:/Users/foo/project/webapps/server/WEB-INF/jetty-env.xml
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:296)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:248)
at org.eclipse.jetty.plus.webapp.EnvConfiguration.configure(EnvConfiguration.java:124)
at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:479)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1337)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41)
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:498)
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:146)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180)
at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:440)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64)
...
at org.eclipse.jetty.start.Main.main(Main.java:112)
我做了什麼錯誤,我該如何解決?
我沒有war文件,但在我的webapps文件夾中有一堆子文件夾,每個文件夾都是不同的項目。在這種情況下如何配置它,以便所有這些項目都可以使用extraClasspath? – Chin
我做你的編輯答案,但現在我有這個問題完全相同的問題:http://stackoverflow.com/questions/26128278/managing-many-jars-via-webappcontext-extraclasspath我必須手動指定每個的文件夾內的JAR。 – Chin
這是正確的,'extraClasspath'中沒有glob支持,你必須指定你希望webapp使用的每個classpath根對象(要麼是擴展類路徑引用的目錄,要麼是jar文件)。坦率地說,如果你有超過2個extraClasspath條目,你有一個部署反模式,並需要評估你爲什麼需要這個額外類路徑。 –