我正在運行Jetty 7 Web應用程序,並想升級到碼頭9.該項目基於Spring框架並使用Maven進行依賴關係管理。有一次,我升級碼頭,它失敗,因爲以下錯誤的開始:從碼頭7升級到碼頭9
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:473)
at org.eclipse.jetty.start.Main.start(Main.java:615)
at org.eclipse.jetty.start.Main.main(Main.java:96)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
at java.lang.Class.getConstructor0(Class.java:2803)
at java.lang.Class.newInstance(Class.java:345)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:348)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:296)
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1262)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1197)
... 7 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.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 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 16 more
我試圖找出有可能導致與servlet的API衝突的依賴,使用maven的依賴關係樹的工具,但沒有多大幫助。錯誤仍然存在。
當前運行的Jetty版本7.2.2.v20101205並且想要升級到9.1.3.v20140225。 NB。將Jetty升級到版本7.6.14.v20131031時也會發生此錯誤。基本上任何其他版本,那麼我現在正在使用的版本會導致此錯誤。
任何想法?
謝謝,我試過了3.0.1的依賴關係,但是錯誤依然存在。最奇怪的部分是,如果我嘗試升級到版本7.6.14.v20131031,我已經得到錯誤。所以,即使我只將Jetty版本從7.2.x更改爲7.6.x,它已經開始向我拋出錯誤。所有7.x Jetty版本都使用2.5 servlet-api,對吧? – Ruud