2

我有一个包含 JAX-RS 资源类的 java web 项目,如下所示:

@Stateless
@Path("user")
public class UserResource {
    @EJB
    BooksResource booksResource;

    ...

    @GET
    public String get() {
        return "User Resource";
    }

    @Path("books")
    public BooksResource getBooksResource() {
        System.out.println("booksResource is " + booksResource);
        return booksResource;
    }

    ...

}

@Stateless
public class BooksResource {

    @GET
    public String get() {
        return "Books Resource";
    }
}

当我运行 WAR 项目时,Evething 工作正常。

但是当我把它放在一个 EAR 项目中时,我只能访问/user/user/books返回 404并且控制台打印“booksResource 为空”。

在EAR项目中运行时似乎没有注入EJB,但为什么它在WAR项目中工作?

我正在使用 Eclipse(靛蓝 JavaEE)和 Glassfish3.1.2。

4

1 回答 1

0

经过大量尝试,我发现使用完全相同的项目(EAR),有时它运行良好(/user 和 /user/books 都可以),有时它运行错误(我的问题中描述的情况),尤其是当我检查了[自动构建]。我认为eclipse WTP或glassfish有问题。

于 2012-08-04T17:21:58.320 回答