2016-05-05 54 views
0

我是新來的條紋,所以我很抱歉,如果它是一個簡單的問題,現在我有這個類綁定嘗試,訪問的ActionBean的網址:

/角色/加

或任何其他事件,我得到了404,我想獲得更多的清潔URL,這樣會更容易在使用彈簧安全功能之前限制動作可以使用的用戶:

@UrlBinding("/role.html") 

和去的網址:

role.html添加

我不知道我在做什麼錯了,請幫幫我,在此先感謝?

回答

0

我相信這是因爲你有兩個處理方法用於add事件。這將導致條紋失敗,出現以下異常啓動(然後用404所有請求,因爲該servlet未能啓動)

2016-05-27 08:53:22,850 FATAL {main} [] net.sourceforge.stripes.controller.StripesFilter Could not instantiate specified Configuration. Class name specified was [net.sourceforge.stripes.config.RuntimeConfiguration]. net.sourceforge.stripes.exception.StripesRuntimeException: Problem instantiating default configuration objects. at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:210) at net.sourceforge.stripes.config.RuntimeConfiguration.init(RuntimeConfiguration.java:276) at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:137) at net.sourceforge.stripes.controller.StripesFilter.init(StripesFilter.java:103) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:759) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: Could not instantiate configured ActionResolver of type [UIActionResolver]. Please check the configuration parameters specified in your web.xml. at net.sourceforge.stripes.config.RuntimeConfiguration.initializeComponent(RuntimeConfiguration.java:257) at net.sourceforge.stripes.config.RuntimeConfiguration.initActionResolver(RuntimeConfiguration.java:119) at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:102) ... 20 more Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: The ActionBean class example.site.actions.help.RecordsAction declares multiple event handlers for event 'add' at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.processMethods(AnnotatedClassActionResolver.java:233) at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.addActionBean(AnnotatedClassActionResolver.java:152) at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.init(AnnotatedClassActionResolver.java:119) at net.sourceforge.stripes.controller.NameBasedActionResolver.init(NameBasedActionResolver.java:125) at net.sourceforge.stripes.config.RuntimeConfiguration.initializeComponent(RuntimeConfiguration.java:253) ... 22 more

0

dhensche是正確的,你有太多的添加處理程序您發佈的代碼。

如果我們假設這只是一個複製錯誤,並且您的ActionBean在您的UrlBinding更改之前可用,我想您可能需要查看您的servlet映射配置。

由於您的鏈接將不再包含「.action」,Web請求可能不知道如何到達StripesDispatcher,這就是爲什麼你會得到404響應。

本博客文章有你想要做一個詳細的例子:Clean and usable URLs in Stripes

而且,你可能要考慮命名您的解決方法,以配合他們處理事件,並開溝HandlesEvent註釋。那麼它將不可能意外地定義重複的處理程序。