У меня написана библиотека, в которой есть часть построения почты.Эта часть создания почты использует Velocity.Класс mailbuilder выглядит следующим образом -
public class mailBuilder {
public void initialize() throws Exception
{
Properties props = new Properties();
log.info("About to set the ClassPath for Velocity specific tasks");
props.setProperty(VelocityEngine.RESOURCE_LOADER, "classpath");
props.setProperty("classpath." + VelocityEngine.RESOURCE_LOADER + ".class", ClasspathResourceLoader.class.getName());
try
{
log.info("Just before");
Velocity.init(props);
log.info("Just after");
}
catch ( Exception e )
{
log.error( "Caught Execption on velocityEngine init", e );
throw new Exception( "Caught Execption on velocityEngine init", e );
}
log.info("Completed initializing Velocity Engine");
}
public String returnMailstring() throws Exception {
initialize();
....
....
}
}
Теперь, когда я запускаю и тестирую эту библиотеку как есть из Eclipse, она дает ожидаемые результаты, и все выглядит хорошо.У меня есть веб-приложение, которое принимает запрос от пользовательского интерфейса и использует ExecutorService (newSingleThreadExecutor) для обслуживания этих пользовательских запросов один за другим в фоновом режиме.
Я замечаю, что мои вызовы в вышеупомянутую библиотекузацикливание на части создания почты, в частности, на Velocity.init(props)
Нет исключений, но поток, кажется, зависает при инициализации VelocityEngine.Я посмотрел в Интернете, и мне не повезло с проблемой.Любая помощь в том, как проблема будет огромной.
Спасибо p1ng