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