Я - мобильный разработчик, пытающийся разработать приложение на стороне сервера ;-(. Все идет хорошо, но сейчас я сталкиваюсь с досадной проблемой, пытаясь запустить метод асинхронно с использованием многозадачности Spring. По сути, метод отправив электронное письмо. Я читал немного о @Async
весенней аннотации и пытался использовать его в своей реализации. Для этого я создал этот класс:
import java.util.concurrent.Executor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
@EnableAsync
public class AsynchConfiguration
{
@Bean(name = "asyncExecutor")
public Executor asyncExecutor()
{
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(3);
executor.setMaxPoolSize(3);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("AsynchThread-");
executor.initialize();
return executor;
}
}
А затем в своем почтовом сервисе Я добавил новый метод:
@Async("asyncExecutor")
public void lostPetSeeAddressAsync(String nameComplete, String to, String petName, String ip, String address, String lat, String lon) throws MessagingException {
lostPetSeeAddress(nameComplete, to, petName, ip, address, lat, lon);
}
, который просто вызывает мой предыдущий метод синхронизации для отправки электронных писем (lostPetSeeAddress). Но после этого кода Tomcat не удается развернуть приложение. Если я удаляю класс AsynchConfiguration
это работает хорошо. Я попытался установить Asyn c в моей конфигурации xml, но он не работает таким же образом. Раздражающей частью этого является отсутствие сообщений об ошибках в консоли Tomcat. Возможно, кто-то может помочь мне с чем Мне нужно сделать или, по крайней мере, с некоторой подсказкой о том, как отлаживать или где получать журналы о том, где и почему происходит сбой Tomcat. Заранее спасибо. * 100 9 *
Редактировать: Это трассировка ошибок на консоли Eclipse, когда сбой развертывания:
ИНФОРМАЦИЯ: Запуск сервера за 33305 мс 30 января 2020 г. 9:37:46 org. apache .coyote .http11.AbstractHttp11Processor process ИНФОРМАЦИЯ: Ошибка синтаксического анализа заголовка HTTP-запроса Примечание: дальнейшие ошибки синтаксического анализа HTTP-заголовка будут регистрироваться на уровне DEBUG. java .lang.IllegalArgumentException: недопустимый символ, найденный в протоколе HTTP в org. apache .coyote.http11.AbstractNioInputBuffer.parseRequestLine (AbstractNioInputBuffer. java: 345) в org. apachettphoh. .process (AbstractHttp11Processor. java: 1065) в орг. apache .coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol. java: 684) в орг. apache .tomcat.util. net .NioEndpoint $ SocketProcessor.doRun (NioEndpoint. java: 1539) в орг. apache .tomcat.util. net .NioEndpoint $ SocketProcessor.run (NioEndpoint. java: 1495) в java .util.concurrent .ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1142) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 617) в орг. apache .tomcat.utilk. $ WrappingRunnable.run (TaskThread. java: 61) в java .lang.Thread.run (Поток. java: 745)