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