我刚开始使用EJB并且遇到了CDI bean @Inject的问题。在部署和启动glassfish服务器时返回错误消息,如:
部署失败=部署期间发生错误:加载应用程序时出现异常:CDI部署失败:加载类com.bwm.servlet.SecurityFilter时出错。有关更多详细信息,请参阅server.log。
日志:
2015-01-03T13:15:36.124 + 0100 |严重:加载应用时发生异常:CDI部署失败:加载类com.bwm.servlet.SecurityFilter时出错 org.jboss.weld.resources.spi.ResourceLoadingException:加载类com.bwm.servlet.SecurityFilter时出错 ...
引起:java.lang.NoClassDefFoundError:Lcom / bwm / beans / interfaces / UserService; at java.lang.Class.getDeclaredFields0(Native Method)...
引起:java.lang.ClassNotFoundException:com.bwm.beans.interfaces.UserService ...
EJB接口声明:
@Local
public interface UserService {
public BWMResult<String> getUserLogin(Integer userId);
public BWMResult<User> getUser(String login, String password);
}
EJB:
@Stateless
@Local(UserService.class)
public class UserServiceBean implements UserService {
我尝试@Inject EJB的安全过滤器:
public class SecurityFilter implements Filter {
@Inject
UserService userService;
EJB在其他项目模块中比SecurityFilter(我在SecurityFilter项目的构建路径中添加EJB项目)
我做错了什么?
提前做好准备。