我已經部署在Tomcat7檢票程序(版本6.10):myapp.war如何在Wicket的不同包中安裝頁面?
web.xml中有以下配置:
<filter>
<filter-name>myapp.wicket</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.myapp.MyWebApp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>myapp.wicket</filter-name>
<url-pattern>/pages/*</url-pattern>
</filter-mapping>
所以我可以訪問檢票頁這樣
http://myhost/myapp/pages/HomePage
直到這裏一切工作正常。我安裝我的網頁在MyWebApp.init()
這樣的:
mountPackage("/", HomePage.class);
,我能夠爲上述指定訪問主頁和其他頁面在同一個包。當我嘗試
mountPackage("/m/", MobilePage.class);
:
問題當我嘗試如果我像以前一樣使用同樣的策略,以安裝在不同的包頁面com.myapp.mobile 到達時,它不會在所有的工作訪問MobilePage,我得到一個異常:
http://myhost/myapp/pages/m/MobilePage
WicketObjects.resolveClass WARNING Could not resolve class [com.myapp.m]
java.lang.ClassNotFoundException: com.myapp.m
而且在同一個包同任何其他網頁(他們都是收藏的)。但是,如果我安裝它們一個接一個:
mountPage("/m/MobilePage", MobilePage.class);
mountPage("/m/MobilePage2", MobilePage2.class);
,或者如果我的根安裝它們,它的工作原理:
mountPackage("/", MobilePage.class);
在前者的情況下與myapp/pages/m/MobilePage
而後者沒有訪問它們/ m /:myapp/pages/MobilePage
所以我的問題在這裏(和對不起,很長的解釋):如何安裝一個新的包在所需的路徑下(/ m /在這種情況下)?
感謝
http:// stackoverflow。com/a/10700321/176897 – tetsuo
@tetsuo我不希望頁面作爲「根」頁面,我希望它們在特定路徑下掛載,以便鏈接不會有太大幫助 – spuas
好吧,經過一天的所有這些工作發現,該方法應被調用,而不最後 '/' 所以 'mountPackage( 「/ M」,MobilePage.class);' 甚至 'mountPackage( 「M」,MobilePage.class);' 作品 – spuas