2016-03-22 18 views
5

私はJSONとしてREST経由でジョブを取得する予定のサービスを持っています。WildFly Swarm Nullpointer @Inject bean

Resourceクラス:

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(); 
     } 
    } 
} 

そしてMyScheduleイストだけPOJO

私の問題は、私がPOST JSONに私はNullPointerExceptionの注射のためにSchedulerControllerを得ることです。

私はWildFly群れ1.0.0を使用しています私もsrc/main/webapp/WEB-INFにbeans.xmlのを持っているし、私のpom.xmlに私はCDIについては、以下の依存関係(溶接)

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

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

を持っていますベータ6

私は何を欠場しましたか?

+0

エラーが見つかりました。私は、ScheduleRESTResourceクラスをManagedBeanにしなければなりませんでした。 –

+0

それは別のエラーでした。私は "weld"依存関係の代わりに "jaxrs-weld"を使用しなければなりませんでした。 –

答えて

0

あなたはSwarm CDIの部分がないと思います。 これをあなたの依存関係に追加してみてください。

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