在Netbeans 8.1 EJB项目中运行JAX-RS



我使用Netbeans 8.1 (Maven项目)创建了一个Java EE 7应用程序,它有一个EJB项目和一个Web项目。我在EJB项目中添加了扩展javax.ws.rs.core.ApplicationApplicationConfig,并将自动生成的NewSessionBean标记为javax.ws.rs.GETjavax.ws.rs.Path

现在,当我右键单击EJB项目并运行它时,它被部署在Glassfish服务器上,但我无法访问REST资源。下面是JAX-RS配置文件:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/api")
public class JaxrsAppConfig extends Application {
}

这是我的JAX-RS资源:

import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Stateless
@LocalBean
@Path("/demo")
public class NewSessionBean {
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public Person businessMethod() {
        return new Person(1, "Prakhar Mishra", 26);
    }
}

我尝试使用以下url访问它:

http://localhost:8080/DemoJavaEE7-ejb/api/demo
http://localhost:8080/DemoJavaEE7-web/api/demo
http://localhost:8080/api/demo

但是,得到常规的404页面。谁能告诉我这里有什么问题吗?

你应该注册你的服务。试着这样修改你的配置:

public class MyApplication extends ResourceConfig {
    public MyApplication() {
        packages("org.foo.rest;org.bar.rest");
    }
}

详细信息https://jersey.java.net/documentation/latest/deployment.html

相关内容

  • 没有找到相关文章

最新更新