Я пытаюсь создать проект Java, который использует веб-сокеты, и он не встраивается в файл .war. Он работает нормально при запуске в Spring Tool Suite, но когда я пытаюсь запустить Maven Install, он вылетает при попытке создать конечную точку сокета.
На моем локальном компьютере, работающем в Spring Tool Suite, все работает как положено, но когда я пытаюсь собрать, сборка не удается. Я заметил, что это не удалось при создании компонента ServerEndpointExporter, поэтому в качестве эксперимента я удалил аннотацию @Bean. Это действительно позволило построить проект, но тогда сокет не работает, очевидно, так что это не работает как реальное решение. Я в растерянности, что еще попробовать.
Мой файл конфигурации websocket выглядит следующим образом:
package com.foo.bar.scconfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
@Bean // if this annotation removed, build completes, but socket nonfunctional
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
Насколько я могу судить, это то место, где оно ломается, но яне знаю, как исправить это таким образом, чтобы поддерживать функциональность.
Попытка сборки завершается неудачно со следующим сообщением:
2019-10-21 12:32:57.066 WARN 14851 --- [main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [com/foo/bar/scconfig/WebSocketConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
2019-10-21 12:32:57.081 INFO 14851 --- [main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-10-21 12:32:57.090 ERROR 14851 --- [main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [com/foo/bar/scconfig/WebSocketConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
Подведем итог: Попытка построить проект Java с использованием веб-сокетовзавершается неудачей, несмотря на то, что проект работает и работает должным образом при запуске через Spring Tool Suite.