micronaut-projects / micronaut-servlet

Servlet support in Micronaut
Apache License 2.0
28 stars 19 forks source link

Deployment to Payara fails due to lifecycle failure in DefaultWatchThread #756

Open jcosmo opened 1 month ago

jcosmo commented 1 month ago

Expected Behavior

Create a relatively simple app from micronaut launch. Add micronaut-servlet. Package as a war. Deploy to payara.

Deployment should have worked

Actual Behaviour

Deployment fails with the error: The return type of the lifecycle method [start] must be void. Related annotation information: annotation [@javax.annotation.PostConstruct()] on annotated element [public io.micronaut.scheduling.io.watch.DefaultWatchThread io.micronaut.scheduling.io.watch.DefaultWatchThread.start()] of type [METHOD]

Steps To Reproduce

Via micronaut launch, take a vanilla application, java 17, groovy.

add to build.gradle: developmentOnly("io.micronaut.servlet:micronaut-http-server-tomcat:4.9.2") implementation("io.micronaut.servlet:micronaut-servlet-engine:4.9.2") plugins: id "war"

build war, deploy to payara

Environment Information

JDK 17 Ubuntu linux Payara 5.2022.5, or Payara 6.2024.6 (latest)

Example Application

demo.zip

Version

4.4.0

graemerocher commented 1 month ago

I believe you have to disable annotation scanning on the server

graemerocher commented 1 month ago

See https://blog.payara.fish/cdi-scanning-in-payara-server

jcosmo commented 1 month ago

I was aware of the need to disable CDI scanning, and have done so. Sorry, should have made that clearer in the instructions. image

Though, maybe, the value in the deployment descriptor in the war is overriding the console. I shall check.

Result of checking: