From the error log, it seems glass fish could not load the webApplication
class.
Make sure your webApplication class is in the correct class path
(com.example.helloworld.HelloWorldApplication)
And the webApplcation class is in the correct format.
or
and may change your web.xml file to be in this format:
<filter>
<filter-name>HelloWorldApplication</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.example.helloworld.HelloWorldApplication</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
</filter>
2008/12/16 Daniel <[email protected]>
> Hi,
> I'm an newbie in Wicket. When I create my first hello world wicket program,
> strange error encounted.
>
> The hello world program is just to show 'Hello World' through Label.
>
> The web.xml is as below,
>
> <servlet>
> <servlet-name>HelloWorldApplication</servlet-name>
>
>
> <servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class>
> <init-param>
> <param-name>applicationClassName</param-name>
> <param-value>com.example.helloworld.HelloWorldApplication</param-value>
> </init-param>
> </servlet>
> <servlet-mapping>
> <servlet-name>HelloWorldApplication</servlet-name>
> <url-pattern>/helloWorld/*</url-pattern>
> </servlet-mapping>
>
> In Tomcat env, when I call the URL :
> http://localhost:8080/WicketExamples/helloWorld/.
> <http://localhost:8080/WicketExamples/helloWorld/>Everything
> goes well.
> When I use the URL: http://localhost:8080/WicketExamples/, show 404 error.
>
> But the same program runs in GlassFish env. when I call the same URL, error
> comes as below
>
> 2008-12-16 17:32:00 org.apache.catalina.core.ApplicationContext log
> 严重: WebModule[/WicketExamples]StandardWrapper.Throwable
> org.apache.wicket.WicketRuntimeException: Unable to create application of
> class com.example.helloworld.HelloWorldApplication
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:82)
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:49)
> at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:666)
> at
> org.apache.wicket.protocol.http.WicketServlet.init(WicketServlet.java:209)
> at javax.servlet.GenericServlet.init(GenericServlet.java:270)
> at
>
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1198)
> at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:863)
> at
>
> org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:369)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
> at
>
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
> at
>
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
> at
>
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
> at
>
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
> at
>
> com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
> at
>
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
> at
>
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
> at
>
> com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
> at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
> Caused by: java.lang.ClassNotFoundException:
> com.example.helloworld.HelloWorldApplication
> at
>
> org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509)
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:68)
> ... 38 more
>
> 2008-12-16 17:32:00 org.apache.catalina.core.StandardWrapperValve log
> 严重: StandardWrapperValve[HelloWorldApplication]: PWC1382: Allocate
> exception
> for servlet HelloWorldApplication
> org.apache.wicket.WicketRuntimeException: Unable to create application of
> class com.example.helloworld.HelloWorldApplication
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:82)
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:49)
> at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:666)
> at
> org.apache.wicket.protocol.http.WicketServlet.init(WicketServlet.java:209)
> at javax.servlet.GenericServlet.init(GenericServlet.java:270)
> at
>
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1198)
> at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:863)
> at
>
> org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:369)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
> at
>
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
> at
>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
> at
>
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
> at
>
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
> at
>
> com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
> at
>
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
> at
>
> com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
> at
> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
> at
> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
> at
>
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
> at
>
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
> at
>
> com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
> at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
> Caused by: java.lang.ClassNotFoundException:
> com.example.helloworld.HelloWorldApplication
> at
>
> org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509)
> at
>
> org.apache.wicket.protocol.http.ContextParamWebApplicationFactory.createApplication(ContextParamWebApplicationFactory.java:68)
> ... 38 more
>
> When I use the URL http://localhost:8080/WicketExamples/, the result is
> correct.
>
> My env is
> JDK 1.5.0_16
> Wicket 1.4rc1
> Tomcat 6.0
> GlassFish v3
>
> Can anybody help me?
>
> Thank you in advance.
> --
> Best regards,
> Daniel
>