0

TJWS埋め込みサーブレットコンテナを使用して、このユーザーガイドhttp://docs.jboss.org/resteasy/docs/2.3.3.Final/userguide/html/RESTEasy_Embedded_Container.html#d0e2640を使用してRestEasyアプリケーションを起動しようとしています。

JBOSS7-ASで正しく動作します。デバッグと単体テストにTJWSを使用したいのですが、依存性注入に問題があります。

リソースクラスUserResourceを作成します。これは、CDIを使用してユーティリティクラスUserManagerを挿入します。

@Path("users")
@SessionScoped
class UserResource {

  @Inject
  UserManager userManager; // simple interface and imlementation

  public UserResource() {} // constructor with no parameters for bean

    @Path("list")
    @GET
    public List<User> list() {
       List<User> userList = userManager.getList(); // NullPointerException
       return userList;
    }
}

メインでTJWSを起動します。

public static void main(String[] args) throws IOException {
    TJWSEmbeddedJaxrsServer tjws = new TJWSEmbeddedJaxrsServer();
    tjws.setPort(9997);
    tjws.start();

    tjws.getDeployment().getRegistry().addPerRequestResource(User.class);
}

ブラウザ経由で取得しようとするとhttp://localhost/users/list、userManagerが挿入されておらず、nullであるため、UserResource.list()メソッドでNullPointerExceptionが発生します。

userManagerを注入する方法はありますか?

4

1 に答える 1

0

TJWSは、@InjectのようなEEアノテーションをサポートしないスタンドアロンのサーブレットコンテナおよびWebサーバーです。コードを機能させるには、JBossASなどのEEコンテナを使用する必要があります。

于 2012-08-14T10:53:02.157 に答える