public class CleanUpListener implements StepExecutionListener {
private static final Logger logger = LoggerFactory.getLogger(CleanUpListener.class);
private String folderToBeDeleted;
@Override
public ExitStatus afterStep(StepExecution arg0) {
try {
logger.info("Deleting folder: " + folderToBeDeleted + " ...");
File file = new File(folderToBeDeleted);
logger.info("folder contains: " + file.listFiles().length);
FileUtils.deleteDirectory(file);
logger.info("Deleted folder: " + folderToBeDeleted);
} catch (IOException e) {
logger.error("Failed to delete folder: " + folderToBeDeleted + " with exception: " + e.toString());
}
return null;
}
@Override
public void beforeStep(StepExecution arg0) {
// TODO Auto-generated method stub
}
public String getFolderToBeDeleted() {
return folderToBeDeleted;
}
public void setFolderToBeDeleted(String folderToBeDeleted) {
this.folderToBeDeleted = folderToBeDeleted;
}
11/03/2014 13:53:56.804 [http-bio-8080-exec-2] [] INFO CleanUpListener - Line (29) Deleting folder: C:/Myfolder ...
11/03/2014 13:53:56.806 [http-bio-8080-exec-2] [] INFO CleanUpListener - Line (31) folder contains: 14
11/03/2014 13:53:56.826 [http-bio-8080-exec-2] [] ERROR CleanUpListener - Line (35) Failed to delete folder: C:/Myfolder with exception: java.io.IOException: Unable to delete file: C:/Myfolder/14.xml
更新:步骤的阅读器:
<bean id="modelReader"
class="org.springframework.batch.item.file.MultiResourceItemReader"
scope="step">
<property name="resources" value="file:${step3.reader.resource}/*.xml"></property>
<property name="delegate" ref="staxPatentReader"></property>
<property name="strict" value="true"></property>
</bean>
<bean id="staxPatentReader" class="org.springframework.batch.item.xml.StaxEventItemReader">
<property name="fragmentRootElementName" value="Root" />
<property name="unmarshaller" ref="modelMarshaller" />
</bean>
<bean id="modelMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.sample.MyModel</value>
</list>
</property>
</bean>
要执行此类步骤,请使用自定义Tasklet实现。
class DeleteFilesTasklet implements Tasklet {
execute(StepContribution, ChunkContext) throws Exception {
// do deletion and return the right value
}
}
在job.xml中
<job>// previous steps
<step id="deleteFiles">
<tasklet ref="deleteFiles" />
</step>
<bean class="DeleteFilesTasklet" id="deleteFiles" />
</job>
这样,您就可以确定所有文件(和其他资源)都已在上一步中关闭。
我想用3个步骤建立一个批次。我想配置这个步骤,就像如果有100条记录,当step1读取、处理和写入一个10块时,step02,然后step03开始和结束,然后再次返回step1,读取下一个块。这在Spring批量可能吗?
我似乎无法使用完成捆绑包的安装
我有一个包含TypeScript的Spring MVC应用程序。通过gradle任务将typescript从文件夹传输到 则结果JavaScript文件通过以下方式包含在WAR文件中: 当我在gradle和IntelliJ之间进行同步时,它会创建一个类似于以下内容的工件: 我该怎么做才能从一开始就得到工件中的文件夹?我应该针对Intellij提交一个bug吗?
问题内容: 假设我安装了项目包,其中包含要安装的模块。一段时间后,我发现我不需要某些特定的模块,并从中删除了对它的依赖。然后,我从中删除了一些其他模块,因为不再需要它们,而其他模块则被替换。 现在,我要清理文件夹,以便只有其中列出的模块可以呆在那里,其余的必须进入,如。我知道我可以手动将其删除,但希望为此可以使用糖功能。 问题答案: 我想你在找 此命令删除“外部”软件包。如果提供了软件包名称,则仅
将文件从documentdirectory移动到子目录的简单脚本不起作用 移动失败,错误为:操作无法完成。(可可错误4。) 我用Xcode的模拟器来尝试它。下面的函数返回true,因为文件存在于DocumentDirectory中。此外,destinationfolder存在,destinationfolder为空。 /Users/RWollenSchlaeger/Library/Develope
我有6个PDF,通过6个单独的按钮加载。这只是一个侧函数来查看我用来创建程序的数据。 程序在集成开发环境中按预期运行,PDF顺利加载,主程序正常工作。然而,经过清理和构建,主程序仍然工作,但PDFS没有加载。 我注意到,如果在清理和构建之后手动将PDF放入dist文件夹中,程序实际上会运行。然而,如果我再次清理并构建,它显然会删除并替换dist文件夹的内容。 我在大学里的场景是把课程交给一位客户,