Java JMS发布者停止向主题发布消息

Java JMS发布者停止向主题发布消息,java,spring,jms,Java,Spring,Jms,我需要一些关于旧式应用程序调试/故障排除的指导。它是一个java应用程序,设计用于处理一个文件夹中的文件,并使用JMS(java消息传递服务)将其放到主题中。这个应用程序的问题是它会突然停止处理.txt文件,而不会抛出任何错误。例如,如果我将400个文件放在“导出”文件夹中,那么应用程序将开始处理这些文件并将其放在“导入”文件夹中(模拟将消息放在主题上的过程),但在处理300个文件或有时389个文件后,它将停止,以此类推。负责处理这些文件的功能如下所示。您可以看到,如果在处理过程中遇到任何异常,

我需要一些关于旧式应用程序调试/故障排除的指导。它是一个java应用程序,设计用于处理一个文件夹中的文件,并使用JMS(java消息传递服务)将其放到主题中。这个应用程序的问题是它会突然停止处理.txt文件,而不会抛出任何错误。例如,如果我将400个文件放在“导出”文件夹中,那么应用程序将开始处理这些文件并将其放在“导入”文件夹中(模拟将消息放在主题上的过程),但在处理300个文件或有时389个文件后,它将停止,以此类推。负责处理这些文件的功能如下所示。您可以看到,如果在处理过程中遇到任何异常,它将捕获多个catch()条件,但到目前为止,我在日志中看不到有助于确定问题确切原因的任何内容

public void tmwRunFileWatcher() {
        LOGGER.info("inputDirectory204##" + inputDirectory204);

        boolean valid;
        int eventCount = 0;
        try {
            do {
                WatchKey watchKey = watchService.take();
                eventCount = 0;
           //     List<WatchEvent<?>> eventList = watchKey.pollEvents();
           //     LOGGER.info("Number of events in list: {}", eventList.size());
                for (WatchEvent event : watchKey.pollEvents()) {
                    eventCount++;
                    LOGGER.info("Event count: {}", eventCount);
                    if(StandardWatchEventKinds.OVERFLOW.equals(event.kind())) {
                        LOGGER.info("An overflow event has occurred. You will need to reprocess files");
                    }
                    if (StandardWatchEventKinds.ENTRY_CREATE.equals(event.kind())) {
                        fileName = event.context().toString();
                        LOGGER.info("File Name before ignored: {}", fileName);
                        if (!(fileName.startsWith("TEMP_"))) {
                            Properties prop = jmsHeader(fileName);
                            String jmsMsg = processTmwMessage(inputDirectory204, fileName);
                            boolean msgFlag;
                            if (jmsMsg !=null && !(jmsMsg.equalsIgnoreCase("NOT READY"))) {
                                msgFlag = tmwPublisher.publishTmwMessageEvent(jmsMsg, prop);
                                if (msgFlag) {
                                    move(inputDirectory204, fileName, dRDirectoryProducer);
                                }
                                LOGGER.info("File Processed successfully: {}",fileName);
                            }else{
                                LOGGER.info("File could not processed due to exception: {}",fileName);
                            }
                        }
                    }
                }
                valid = watchKey.reset();
                LOGGER.info("WatchKey reset value: {}", valid);

            } while (valid);
        } catch (ClosedWatchServiceException closedWatchServiceException) {
            LOGGER.error("Caught ClosedWatchServiceException: {}", closedWatchServiceException.getMessage());
        } catch(InterruptedException interruptedException){
            LOGGER.error("Caught InterruptedException: {}", interruptedException.getMessage());
        } catch (MissingParentResourceException missingException) {
            LOGGER.error("Caught InterruptedException: {}", missingException.getMessage());
        } catch(Exception e){
            LOGGER.error("Caught a Generic Exception: {}", e.getMessage());
        }
    }

public void tmwrunfelewatcher(){
LOGGER.info(“inputDirectory204##”+inputDirectory204);
布尔有效;
int eventCount=0;
试一试{
做{
WatchKey WatchKey=watchService.take();
eventCount=0;
//名单