WildFly Swarm Nullpointer @Inject bean

I have a schedule service that gets its work through REST as JSON.

Resource Class:

 import java.io.IOException; import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import de.fszm.scheduler.controller.SchedulerController; import de.fszm.scheduler.entities.MySchedule; @Path("/schedule") public class ScheduleRESTResource { @Inject SchedulerController scheduleController; @POST @Path("/job") @Consumes(MediaType.APPLICATION_JSON) public void schedule(MySchedule schedule) throws IOException { scheduleController.buildSchedule(schedule); } } 

ScheduleController :

 import javax.enterprise.context.RequestScoped; import javax.inject.Named; import de.fszm.scheduler.entities.MySchedule; @Named @RequestScoped public class SchedulerController { public void buildSchedule(MySchedule schedule) { System.out.println("Test"); } } 

SchedulerMain :

 import org.jboss.shrinkwrap.api.ShrinkWrap; import org.wildfly.swarm.container.Container; import org.wildfly.swarm.jaxrs.JAXRSArchive; import de.fszm.scheduler.controller.SchedulerController; import de.fszm.scheduler.entities.MySchedule; import de.fszm.scheduler.rest.JaxRSActivator; import de.fszm.scheduler.rest.ScheduleRESTResource; public class SchedulerMain { public static void main(String[] args) { try { Container container = new Container(); container.start(); JAXRSArchive appDeployment = ShrinkWrap.create(JAXRSArchive.class); appDeployment.addResource(ScheduleRESTResource.class); appDeployment.addResource(JaxRSActivator.class); appDeployment.addClass(MySchedule.class); appDeployment.addClass(SchedulerController.class); appDeployment.addAllDependencies(); container.deploy(appDeployment); } catch (Exception e) { e.printStackTrace(); } } } 

And MySchedule ist is just a POJO

My problem is that when I POST JSON for I, I get a NullPointerException for the introduced SchedulerController .

I also have beans.xml in src/main/webapp/WEB-INF , and in my pom.xml I have the following dependency for CDI (welding)

 <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>weld</artifactId> </dependency> 

and

 <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> <version>1.2</version> </dependency> 

I am using WildFly swarm 1.0.0 beta 6

What did I miss?

+5
source share
1 answer

I think you are missing the SWI Swarm faction. Try adding this to your dependencies.

 <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>cdi</artifactId> </dependency> 
0
source

Source: https://habr.com/ru/post/1245559/


All Articles