Community
Participate
Working Groups
Build Identifier: 7.3.0.v20110203 Attempting to configure a transparent proxy as follows: <servlet> <servlet-name>GoogleProxy</servlet-name> <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>ProxyTo</param-name> <param-value>http://google.com</param-value> </init-param> <init-param> <param-name>Prefix</param-name> <param-value>/folders</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>GoogleProxy</servlet-name> <url-pattern>/folders/*</url-pattern> </servlet-mapping> YIELDS: 2011-04-27 10:57:16.863:WARN::FAILED o.e.j.w.WebAppContext{/car,file:/home/sdenovan/src/bci/icms/icms_jetty/web/}: java.lang.NoClassDefFoundError: org/eclipse/jetty/client/HttpExchange 2011-04-27 10:57:16.863:WARN::Unable to reach node goal: started java.lang.NoClassDefFoundError: org/eclipse/jetty/client/HttpExchange at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:606) at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:744) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:422) at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:588) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180) at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:479) at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:136) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137) at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:50) at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:477) at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:389) at org.eclipse.jetty.util.Scanner.scan(Scanner.java:339) at org.eclipse.jetty.util.Scanner.start(Scanner.java:275) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:540) at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:219) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:42) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96) at org.eclipse.jetty.server.Server.doStart(Server.java:258) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1068) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:993) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.jetty.start.Main.invokeMain(Main.java:477) at org.eclipse.jetty.start.Main.start(Main.java:623) at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273) at org.eclipse.jetty.start.Main.main(Main.java:81) Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.client.HttpExchange at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:606) at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:744) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:422) at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:588) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180) at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:479) at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:136) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137) at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:50) at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:477) at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:389) at org.eclipse.jetty.util.Scanner.scan(Scanner.java:339) at org.eclipse.jetty.util.Scanner.start(Scanner.java:275) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:540) at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:219) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:42) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96) at org.eclipse.jetty.server.Server.doStart(Server.java:258) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1068) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:993) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.jetty.start.Main.invokeMain(Main.java:477) at org.eclipse.jetty.start.Main.start(Main.java:623) at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273) at org.eclipse.jetty.start.Main.main(Main.java:81) Reproducible: Always
Copying jetty-client-7.3.0.v20110203.jar to WEB-INF/lib (Jetty IRC suggestion) doesn't resolve the issue -- same error.
The Jetty test webapp has this servlet OK, so it is probably best to model your webapp on that. You need to make sure that all the dependent jars are available: [INFO] org.eclipse.jetty:jetty-client:jar:7.4.1-SNAPSHOT [INFO] +- org.eclipse.jetty:jetty-http:jar:7.4.1-SNAPSHOT:compile [INFO] | \- org.eclipse.jetty:jetty-io:jar:7.4.1-SNAPSHOT:compile [INFO] | \- org.eclipse.jetty:jetty-util:jar:7.4.1-SNAPSHOT:compile you can put these in WEB-INF/lib or you can add client to the start.ini OPTIONS and update the contexts classloader configuration so those classes are visible. Either way, closing this as it is not a bug - rather a request for support. So please follow up on jetty mailing lists.