3

TomcatにデプロイされたJerseyリソースのサーブレットコンテキストを取得しようとしていますが、これを実行しようとすると、nullポインター例外が発生します。私のコードは次のとおりです。

@Path("/resource")
public class MyResource {

@Context ServletContext context;

public MyResource(){

    System.out.println("Context: "+context.getRealPath("/"));

}

}

私のweb.xmlは次のように構成されています。

<servlet>
  <servlet-name>MyResource</servlet-name>
<servlet-class>
  com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.mypackage</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>MyResource</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>   

私の問題が何であるかについての手がかりはありますか?Tomcat6.0.33およびJersey1.12を使用します。

4

1 に答える 1

11

サービス メソッドを使用してリソースにアクセスするまで、注入は行われません。

@Path("/resource")
public class MyResource {

   @Context ServletContext context;

   public MyResource() {
       System.out.println(context); //null
   }

   @GET
   @Path("subresource")
   public Response getASubResource() {
       System.out.println(context); // not null
       return Response.ok("OK").build();
   }



}  
于 2012-05-29T18:29:30.863 に答える