【问题标题】:Running JAX-RS in Netbeans 8.1 EJB project在 Netbeans 8.1 EJB 项目中运行 JAX-RS
【发布时间】:2016-09-02 07:53:24
【问题描述】:

我使用Netbeans 8.1(Maven 项目)创建了一个Java EE 7 应用程序,其中包含一个EJB 项目和一个Web 项目。我在 EJB 项目中添加了一个 ApplicationConfig 扩展 javax.ws.rs.core.Application 并用 javax.ws.rs.GET 和 javax.ws.rs.Path 标记了自动生成的 NewSessionBean。

现在,当我右键单击 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 页面。谁能告诉我这里可能是什么问题?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      相关资源
      最近更新 更多