On 12 November 2010 09:30, Josh Kamau <[email protected]> wrote: > Hi there; > > Has anyone tried working with the wicket 1.5-m3 and the new guice/guice > persist 3 snapshots? > > am getting the below error: >
Hi Josh, This stack suggests that Jetty is trying to create the Guice PersistFilter, which will fail because it's expecting to be created and injected by Guice (PersistFilter has no default constructor). You need to use the latest Guice servlet extension: http://code.google.com/p/google-guice/wiki/Servlets which will automatically inject any filters and servlets that need injection (as long as you setup the top-level filter and add a servlet context listener to create the injector). -- Cheers, Stuart > java.lang. > InstantiationException: com.google.inject.persist.PersistFilter > at java.lang.Class.newInstance0(Class.java:340) > at java.lang.Class.newInstance(Class.java:308) > at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:92) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662) > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > at > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) > at > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) > at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) > at > org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) > at > org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > at org.mortbay.jetty.Server.doStart(Server.java:224) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) > at > org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:441) > at > org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:383) > at > org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210) > at > org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184) > at > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) > at > org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) > 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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > at > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) > at org.codehaus.classworlds.Launcher.main(Launcher.java:375) > > Web.xml > <?xml version="1.0" encoding="ISO-8859-1"?> > <web-app xmlns="http://java.sun.com/xml/ns/j2ee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > version="2.4"> > > <display-name>issuetracker</display-name> > > <filter> > <filter-name>wicket.issuetracker</filter-name> > > <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> > <init-param> > <param-name>applicationClassName</param-name> > > <param-value>ke.co.at.issuetracker.WicketApplication</param-value> > </init-param> > </filter> > > <filter> > <filter-name>persistFilter</filter-name> > > <filter-class>com.google.inject.persist.PersistFilter</filter-class> > </filter> > > <filter-mapping> > <filter-name>wicket.issuetracker</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > <filter-mapping> > <filter-name>persistFilter</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > > </web-app> > > peristence.xml > > <persistence xmlns="http://java.sun.com/xml/ns/persistence" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence > http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" > version="1.0"> > <persistence-unit name="issuetrackerPU" > transaction-type="RESOURCE_LOCAL"> > <properties> > <property name="hibernate.dialect" > value="org.hibernate.dialect.PostgreSQLDialect" /> > <property name="hibernate.connection.driver_class" > value="org.postgresql.Driver" /> > <property name="hibernate.connection.username" value="postgres" > /> > <property name="hibernate.connection.password" value="postgres" > /> > <property name="hibernate.connection.url" > value="jdbc:postgresql://localhost:5432/issuetracker" /> > <property name="hibernate.hbm2ddl.auto" value="update" /> > </properties> > </persistence-unit> > > <persistence-unit name="issuetrackerPUtest" > transaction-type="RESOURCE_LOCAL"> > <properties> > <property name="hibernate.dialect" > value="org.hibernate.dialect.HSQLDialect" /> > <property name="hibernate.connection.driver_class" > value="org.hsqldb.jdbcDriver" /> > <property name="hibernate.connection.username" value="sa" /> > <property name="hibernate.connection.password" value="" /> > <property name="hibernate.connection.url" > value="jdbc:hsqldb:mem:issuetracker" /> > <property name="hibernate.hbm2ddl.auto" value="update" /> > </properties> > </persistence-unit> > > </persistence> > > > Guice Module > > package ke.co.at.issuetracker; > > import ke.co.at.issuetracker.services.LoginService; > import ke.co.at.issuetracker.services.impl.LoginServiceImpl; > > import com.google.inject.AbstractModule; > > public class GuiceModule extends AbstractModule { > > @Override > protected void configure() { > bind(LoginService.class).to(LoginServiceImpl.class); > } > > } > > Wicket application > > package ke.co.at.issuetracker; > > import ke.co.at.issuetracker.pages.AdminUserPage; > import ke.co.at.issuetracker.pages.LoginPage; > > import org.apache.wicket.guice.GuiceComponentInjector; > import org.apache.wicket.protocol.http.WebApplication; > > import com.google.inject.Guice; > import com.google.inject.Injector; > import com.google.inject.persist.jpa.JpaPersistModule; > > /** > * Application object for your web application. If you want to run this > * application without deploying, run the Start class. > * > * @see ke.co.at.issuetracker.Start#main(String[]) > */ > public class WicketApplication extends WebApplication { > /** > * Constructor > */ > public WicketApplication() { > } > > /** > * @see org.apache.wicket.Application#getHomePage() > */ > public Class<LoginPage> getHomePage() { > return LoginPage.class; > } > > @Override > protected void init() { > super.init(); > Injector injector = Guice.createInjector(new GuiceModule(), new > JpaPersistModule("issuetrackerPU")); > getComponentInstantiationListeners().add(new > GuiceComponentInjector(this, injector)); > > getMarkupSettings().setStripWicketTags(true); > > mountPage("/login", LoginPage.class); > mountPage("/registeradmin", AdminUserPage.class); > } > > } > > kind regards. > Josh > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-guice%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
