我尝试在JBoss Wildfly上构建一个简单的EJB项目。
我希望无状态EJB成为JAX-RS资源类。此REST服务应该只返回保存在数据库中的Person实体。
EJB-代码:
@Stateless
@Path("/person")
public class PersonServiceBean {
@PersistenceContext EntityManager em;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Person> getAllPersons(){
return em.createQuery("FROM " + Person.class.getName()).getResultList();
}
}
我读过我需要一个带有ApplicationPath-annotation的Application子类
@ApplicationPath("/rest")
public class JaxRsApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
return new HashSet<Class<?>>(Arrays.asList(PersonServiceBean.class));
}
}
但我仍然在本地主持人获得404:8080 / rest / person&#39;。
我错过了配置吗?
我真的很感谢你的帮助!
答案 0 :(得分:2)
问题是Rest资源必须在WAR中而不在EJB项目中。