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?
source share