Hello
I´m facing some issues deploying .war because of the notification plugin.
If I deploy the project with this code on the Main.class:
@Push
@Theme(value = "Athia")
@PWA(name = "Athia", shortName = "Athia")
@SpringBootApplication
public class AthiaApplication extends SpringBootServletInitializer implements AppShellConfigurator {
public AthiaApplication(NotificationTypesRepository notificationTypesRepository) {
this.notificationTypesRepository = notificationTypesRepository;
}
private final NotificationTypesRepository notificationTypesRepository;
@Autowired
private Environment environment;
public static void main(String[] args) {
SpringApplication.run(AthiaApplication.class, args);
}
@Bean
@Primary
@ConfigurationProperties("main.datasource")
DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("main.datasource.hikari")
DataSource dataSource(final DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
@EventListener
public void onApplicationContextRefreshed(final ContextRefreshedEvent event) {
notificationTypesRepository.registerTypes(
new NotificationType("info","INFO_CIRCLE"),
new NotificationType("warn","WARNING")
);
}
@EventListener
public void printApplicationUrl(final ApplicationStartedEvent event) {
LoggerFactory.getLogger(AthiaApplication.class).info("Application started at "
+ "http://localhost:"
+ environment.getProperty("local.server.port")
+ Strings.nullToEmpty(environment.getProperty("server.servlet.context-path")));
}
}
IT fails the deploy with this log:
19-Sep-2025 09:53:30.093 GRAVE [main] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
jakarta.servlet.ServletException: Failed to instantiate WebApplicationInitializer class
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:157)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:654)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:969)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:771)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:423)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1629)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:761)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: java.lang.NoSuchMethodException: es.hiperusera.athia.AthiaApplication.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3761)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at org.springframework.util.ReflectionUtils.accessibleConstructor(ReflectionUtils.java:185)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:154)
... 38 more
I want to mention that in the gradle file, installing the Notification plugin, appears like another variables for the premium account, and I´m not sure if this is OK.

Well… temporally, the “Solution” is to get rid of the notification code from the main class.
PD. If I run the project from IntelliJ, with the connection to the prod database, it works. So I discard some kind of inconsistency between database and the project.
JMIX VER : 2.6.0
JAVA VER: 21.0…
INTELLIJ VER : 2024.3
Thank you in advance