我不知道拦截器应该如何工作,因为我有一些带有@Intercepted注释的MadvocAction,但是拦截器堆栈似乎不能被访问。
@MadvocAction("index")
public class IndexAction extends AppAction {
@PetiteInject
private TemperatureService temperatureService;
@Action
@InterceptedBy(AppInterceptorStack.class)
public void view() {
// body here ....
}和拦截器堆栈:
package ro.videanuadrian.smartHome.web.interceptors;
import jodd.joy.madvoc.interceptor.DefaultInterceptorStack;
import jodd.madvoc.interceptor.ActionInterceptorStack;
import jodd.madvoc.interceptor.EchoInterceptor;
public class AppInterceptorStack extends ActionInterceptorStack {
public AppInterceptorStack() {
super(
AppAuthenticationInterceptor.class,
EchoInterceptor.class,
DefaultInterceptorStack.class
);
}
}有什么想法吗?
使用madvoc配置进行了更新:所以这是在我的web.xml中:
<filter>
<filter-name>madvoc</filter-name>
<filter-class>jodd.madvoc.MadvocServletFilter</filter-class>
<init-param>
<param-name>madvoc.webapp</param-name>
<param-value>ro.videanuadrian.smartHome.config.SmartHomeWebApplication</param-value>
</init-param>
<init-param>
<param-name>madvoc.params</param-name>
<param-value>/madvoc.props</param-value>
</init-param>
</filter> 下面是我的Madvoc it1s的初始化方式:
public class SmartHomeWebApplication extends PetiteWebApplication {
final SmartHomeServiceCore serviceCore;
public SmartHomeWebApplication() {
serviceCore = new SmartHomeServiceCore();
serviceCore.start();
}
/**
* Adds configurator to Madvoc container and invokes configuration.
*/
@Override
public void configure(MadvocConfigurator configurator) {
if (configurator instanceof AutomagicMadvocConfigurator){
AutomagicMadvocConfigurator amc = (AutomagicMadvocConfigurator) configurator;
amc.setExcludeAllEntries(true);
amc.setIncludedEntries("ro.videanuadrian.*");
registerComponent(amc);
amc.configure();
}
} 还有madvoc.props:
madvocConfig.defaultInterceptors=ro.videanuadrian.smartHome.web.interceptors.AppInterceptorStack
madvocConfig.fileUploadFactory.maxFileSize=-1 在你回答之后,我评论了madvocConfig.defaultInterceptors,但结果是一样的。
发布于 2016-03-27 02:57:18
你在这里所做的一切看起来都很好。但是,批注可能不起作用有一个原因:您是否可能使用madvoc-routes.txt
正如here所解释的,定义操作和拦截器的另一种方法是将此配置文件与路由一起使用。如果启用此选项,您可能会对注释一无所知。
请检查这是不是真的,如果是:
文件中定义
go仅注记拦截器
如果这不是一个案例,那么你会发现一些特定的东西(bug,换句话说;),尽管这个功能是非常基本的-如果是这样的话,请随时在github上触发问题:)
编辑
我已经制作了webapp example,它似乎模仿了你所做的一切。我的感知器会被调用。您能帮我查一下吗?
https://stackoverflow.com/questions/36231064
复制相似问题