Builder<String, String> builder = StateMachineBuilder
.<String, String> builder();
builder.configureConfiguration()
.withConfiguration()
.autoStartup(false)
.listener(listener())
.beanFactory(
this.applicationContext.getAutowireCapableBeanFactory());
private StateMachineListener<String, String> listener() {
return new StateMachineListenerAdapter<String, String>() {
@Override
public void stateChanged(
org.springframework.statemachine.state.State<String, String> from,
org.springframework.statemachine.state.State<String, String> to) {
LOGGER.debug("State change to " + to.getId());
}
@Override
public void stateMachineError(
StateMachine<String, String> stateMachine, Exception e) {
e.printStackTrace();
LOGGER.debug("Ah... I am not getting executed when exception occurs from entry actions");
LOGGER.debug("Error occured from " + stateMachine.getState()
+ "and the error is" + e.toString());
}
};
}
您是正确的,StateMachineError
或用@onstateMachineError
注释的方法都不会在错误时执行。这在1.2版中得到了解决,它现在处于里程碑1。他们引入了erroraction
,该操作在状态机上下文中执行:
用户总是可以手动捕获异常,但是对于为转换定义的操作,可以定义错误操作,如果引发异常,则调用错误操作。则从传递给该操作的StateContext中可以使用异常。
在状态机配置类中定义转换时,只需指定一个错误操作和所需的操作。来自文档中的示例:
public void configure(StateMachineTransitionConfigurer<States, Events> transitions)
throws Exception {
transitions
.withExternal()
.source(States.S1)
.target(States.S2)
.event(Events.E1)
.action(action(), errorAction());
}
当编写器抛出异常时,我希望能够将步骤和作业状态设置为失败。在做了一些调试和检查Spring批处理源代码后,我注意到配置了一个,它认为是一个致命的异常,因此将作业状态设置为FAILED,所以我将代码包装在我的编写器中的一个try-get中,将包装在中,现在作业和步骤状态设置为FAILED,这是我想要的。我不确定这是否是正确的方法,因为我在任何地方都找不到它的文档,的留档也没有提到它。所以,问题是:这
我从服务器得到以下响应:状态代码。没有实际响应(返回的对象等),因此不需要创建POJO类。 所以,我不知道如何在不创建POJO类的情况下处理这个状态代码。有没有任何选项可以使写代码不使用POJO类?
我希望为每个状态代码显示不同的错误消息,例如: < li>400错误请求 < li>403禁止 < li>500内部服务器错误 < li>404未找到 < li>401未授权 如何在新的ASP。NETMVC6应用程序?我可以使用内置的UseErrorHandler方法执行此操作吗? 另外,我注意到,即使使用上述处理程序,输入不存在的URL(例如/this-page-不存在)也会导致来自IIS的丑陋
如何在SpringMVC中实现自定义http错误处理。 例如:我有一个urlhttp://localhost:8080/demo/canvas 它显示我的画布页面,但如果用户错过了网址并键入http://localhost:8080/demo/canva 它显示了Tomcat呈现的HTTP状态404。我希望它是自定义jsp页面。
是否可以在Spring批处理中动态配置作业? 这是我想做的。我创建了几个不同的,如下所示: FlatFileItemReader 我希望能够在创建批处理作业时动态混合和匹配它们。例如,假设我需要一个有2个步骤的作业。第一步包含一个用于预处理的。第二步将有一个,用于使用我的阅读器/写入器进行基于块的数据处理......类似这样的东西: 在XML中,我可以执行以下操作: 但是我如何像上面一样以编程方式