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

时间:2016-09-02 07:53:25

标签: maven java-ee netbeans ejb jax-rs

我使用Java EE 7(Maven项目)创建了一个Netbeans 8.1应用程序,拥有一个EJB项目和一个Web项目。我在EJB项目中添加了ApplicationConfig扩展javax.ws.rs.core.Application并在NewSessionBeanjavax.ws.rs.GET中标记了自动生成的javax.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);
    }
}

我尝试使用以下网址访问它:

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

但是,定期404页面。请问有谁可以告诉我这里可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

您应该注册您的服务。 尝试更改您的配置,如:

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

更多详情https://jersey.java.net/documentation/latest/deployment.html