java - jersey restful service如何与ejb集成?
问题描述
将 jersey 与 ejb 集成后,我无法访问我的休息服务。
在一个ear包中,我部署了两个war包和一个jar包。
一个war包,我可以通过http://127.0.0.1:8080/web-1.0-SNAPSHOT/访问它的服务,它会输出“ hello world, EJB
”;
另一个war包,我无法通过http://127.0.0.1:8080/app-1.0-SNAPSHOT/services/hello访问它的服务
Here is the jar code.
@Stateless
public class SimpleStatelessEjb {
public String hello() {
return "hello world, EJB";
}
}
web-1.0-SNAPSHOT code
@WebServlet({"/", "/ejbServlet"})
public class EjbServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
SimpleStatelessEjb statelessBean;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
PrintWriter writer = resp.getWriter();
String msg = statelessBean.hello();
writer.println(msg);
}
}
app-1.0-SNAPSHOT code
@ApplicationPath("services")
public class RestApplication extends ResourceConfig {
public RestApplication() {
// packages("individual.cc.app.servlet");
register(HelloController.class);
}
}
@Stateless
@Path("/hello/")
public class HelloController {
@EJB
SimpleStatelessEjb statelessBean;
@GET
@Produces(MediaType.APPLICATION_JSON)
public String hello() {
return statelessBean.hello();
}
}
我希望http://127.0.0.1:8080/app-1.0-SNAPSHOT/services/hello GET,它会输出hello world, EJB
,但是,它总是抛出Not Found
这是整个代码
有人能给我一些帮助吗?
非常感谢。
解决方案
推荐阅读
- ruby - 使用 OpenSSL::SSL::VERIFY_NONE 时 Ruby 中的 Handshake_failure
- networking - 我们可以在防火墙规则中使用标签来允许从一个 gke 集群中的 pod 到另一个使用 ip 别名的 pod 的流量吗?
- azure - 从 PowerShell 连接到 Azure 时出错
- javascript - 在 vue.js 上初始化 JavaScript
- c# - 我无法删除小数 C# Unity
- batch-file - 一些 echo 语句在批处理脚本中不起作用
- scala - EitherT:仅当某个条件为真时调用函数返回 Either(否则返回正确)
- eclipse - 检查是否在 RCPTT 中打开了一个窗口
- apache - 使用自定义端口将 http 重定向到 https
- c# - RegistrationExistsAsync 是否返回当前的注册状态?当用户也卸载应用程序时