java - EJB 注释不适用于 Restful 服务
问题描述
我在 Stackoverflow 上解决了一些与此相关的问题,并以相同的方式实现了我的代码,但是当我从 Restful Services 使用 @EJB 注释时,它仍然对我不起作用。1. EJB 注入 Restful 服务 (NullPointerException) 2.无法将 Bean 类注入 Restfull WebService (JAX-RS)
我正在使用 websphere 应用程序服务器来部署 EAR 并从一个简单的主类调用其余服务。在下面的代码中,我期望 myService 进行初始化,但它会引发 NullPointerException。
下面是我的示例资源类:
@Path(value = "/addresses")
@Stateless(name = "MyFacade")
public class MyFacade implements IMyFacade {
@EJB
private IMyService myService;
@Override
@POST
@Path("/postReq")
@Consumes("application/json")
public Response myMethod(RequestDTO requestDTO) {
Long docId = myService.generate(requestDTO);
return Response.status(201).entity(docId).build();
}
}
界面:
@Local
public interface IMyFacade {
public Response myMethod(RequestDTO requestDTO);
}
应用扩展:
public class UtilitiesApplication extends Application {
@Override
public Set<Class< ? >> getClasses() {
Set<Class< ? >> classes = new HashSet<Class< ? >>();
classes.add(MyFacade.class);
return classes;
}
}
服务等级:
@Stateless
public class MyService implements IMyService {
//Implementation of generate() method.
}
Web.xml 条目
<servlet>
<description>
JAX-RS Tools Generated - Do not modify</description>
<servlet-name>my.facades.MyFacade</servlet-name>
<servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>my.facades.UtilitiesApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my.facades.MyFacade</servlet-name>
<url-pattern>/MyWS/*</url-pattern>
</servlet-mapping>
请帮助我了解我可能做错了什么。让我知道是否需要任何其他信息。谢谢!
解决方案
推荐阅读
- ibm-cloud - ibm-cloud:正在配置 db2
- python - 错误 15 尝试发送/获取消息时访问被拒绝
- python - 安装 Python 包时如何编译 C/C++
- python - 关于关闭 3D Delaunay 三角测量的问题
- google-apps-script - 似乎无法让任何 Google Scripts 代码来加粗所有出现的一个特定单词
- css - 在颜色之间更改时防止css动画通过调色板
- django - 导入 django-sphinxsearch 时出现语法错误
- powershell - 使用 PowerShell 访问“上次保存日期”
- r - 根据范围内的数字是否出现在选择列中创建虚拟变量
- c++ - C++ 问题:什么是“class UserDefinedType* MemberName;” 什么时候声明为类的属性?