【发布时间】:2013-12-01 02:53:07
【问题描述】:
我有一个休息服务实现如下
@Stateless
@Path("/Person")
@Produces(MediaType.APPLICATION_XML)
public class RestService {
@PersistenceContext(unitName = "mysqlPU")
EntityManager em;
@GET
@Path("{id}")
public Response Book(@PathParam("id") Long id) {
Person person = em.find(Person.class, id);
if(person == null) {
return Response.status(Response.Status.FORBIDDEN).build();
}
return Response.ok(person).build();
}
}
@ApplicationPath("/rs")
public class ApplicationConfig extends Application {
private final Set<Class<?>> classes;
public ApplicationConfig() {
HashSet<Class<?>> c = new HashSet<Class<?>>();
c.add(RestService.class);
classes = Collections.unmodifiableSet(c);
}
@Override
public Set<Class<?>> getClasses() {
return classes;
}
}
它与其他 ejb 一起打包在一个 jar 文件中,在任何 .war 之外。 如果我耳朵里碰巧有一个战争包,我只能访问该服务。我可以使用 localhost:8080/warContextRoot/rs/ 等战争的上下文根来访问它。 有什么方法可以在不部署战争的情况下部署休息服务并且仍然可以访问它?
【问题讨论】:
标签: rest glassfish-4 java-ee-7