0

我们的 Java 应用程序遇到了一个奇怪的情况,我们需要编写一个扁平的程序,我们决定使用 Flatworm java 库。我们编写了一个需要在 Unix 服务器上调度的企业 Java 应用程序。我们开发了我们的 java 应用程序,它在我们的 Windows 桌面 PC 上运行良好。当我们尝试执行使用 Flatworm 库的应用程序时,我们会收到一个静默错误。应用程序挂起并且不会引发任何异常。因此,我们尝试放置大量日志信息,并且我们了解问题出在哪里。

fileCreator = new FileCreator(outputData.getConfigMailFile(), outputData.getDownloadFolder() + trackFileName);
            fileCreator.open();
            fileCreator.setRecordSeperator("\n");
            for (MailFile mail : listMails) {
                fileCreator.setBean("mail", mail);
                fileCreator.write("mailRow");
            }

当我们调用这两个方法时,错误应该在 java cicle 内部。

for (MailFile mail : listMails) {
                    fileCreator.setBean("mail", mail);
                    fileCreator.write("mailRow");
                }

我们对这个问题有点迷茫,我们至少想了解如何捕获这个异常。执行代码的 Unix 机器似乎异常停止。我真的很感谢你的帮助。谢谢

2012 年 7 月 19 日更新

我们在 linux 3.2 内核 java 1.6 上进行了尝试,程序运行正常。看起来有一些东西阻止了扁虫,我们查看了应用程序在这部分代码中挂起的扁虫的源代码:

if (beanRef != null)
                        {
                            // Extract property name
                            Object bean = null;
                            String property = "";
                            try
                            {
                                int posOfFirstDot = beanRef.indexOf('.');
                                bean = beans.get(beanRef.substring(0, posOfFirstDot));
                                property = beanRef.substring(posOfFirstDot + 1);
                            } catch (ArrayIndexOutOfBoundsException ex)
                            {
                                throw new FlatwormCreatorException("Had trouble parsing : " + beanRef
                                        + " Its format should be <bean_name>.<property_name>");
                            }

                            // Convert to String for output
                            Object value = PropertyUtils.getProperty(bean, property);
                            val = convHelper.convert(type, value, convOptions, beanRef);
                            PropertyUtils.setProperty(bean, property, value);
                        } // end beanRef != null
                        // Handle any conversions that need to occur
                        if (val == null)
                        {
                            val = "";
                        }
                        val = convHelper.transformString(val, recElement.getConversionOptions(), recElement
                                .getFieldLength());

                        if (itRecElements.hasNext())
                            bufOut.write(val + delimit);
                        else
                            bufOut.write(val);

另一个不起作用的 unix 是内核 2.6 和 java 1.6

4

0 回答 0