我使用Java EE 7
(Maven项目)创建了一个Netbeans 8.1
应用程序,拥有一个EJB项目和一个Web项目。我在EJB项目中添加了ApplicationConfig
扩展javax.ws.rs.core.Application
并在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);
}
}
我尝试使用以下网址访问它:
http://localhost:8080/DemoJavaEE7-ejb/api/demo
http://localhost:8080/DemoJavaEE7-web/api/demo
http://localhost:8080/api/demo
但是,定期404页面。请问有谁可以告诉我这里可能出现什么问题?
答案 0 :(得分:0)
您应该注册您的服务。 尝试更改您的配置,如:
public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("org.foo.rest;org.bar.rest");
}
}
更多详情https://jersey.java.net/documentation/latest/deployment.html