gpt4 book ai didi

java - EJB部署错误

转载 作者:行者123 更新时间:2023-11-29 04:44:45 26 4
gpt4 key购买 nike

我想在 JBoss 上部署我的 war archive,但是我得到了这个错误:

    11:26:08,539 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."lab4-war.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."lab4-war.war".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment "lab4-war.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_65]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS014544: No EJB found with interface of type 'pro.alexfly.lab4.dao.UserDAO' for binding pro.alexfly.lab4.controller.AdminPanelController/userDAO
at org.jboss.as.ejb3.deployment.processors.EjbInjectionSource.getResourceValue(EjbInjectionSource.java:90)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:215)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:184)
at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:152)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:145)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
... 5 more

我尝试用 google 搜索它并在 Internet 上使用相同的错误解决方案修复它,但我无法修复它。我越来越多地收到此错误。

我的 DAO 接口(interface):

/**
* @Author is flystyle
* Created on 05.06.16.
*/
public interface IRequestDAO {
Integer createRequest(final Request source);
List<Request> list(final Date date);
List<Request> list();
List<Request> list(final Station begin, final Station end);
Request getRequestById (final int id);
List<Request> getRequestsByUserId (final int userId);

void removeRequestById(final int id);
void removeRequestByUser(final User user);

@Deprecated
void removeAllRequests();

}

我的 UserDAO 类:

@Stateless // look I have this annootation!
public class UserDAO implements IUserDAO {

private SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

public User verifyEnter(String name, String pass) {
Session session = sessionFactory.openSession();
Transaction tr = null;
tr = session.beginTransaction();

String sql = "SELECT * FROM rails_user WHERE user_name = :an AND user_pass = :ap";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(User.class);
query.setParameter("an", name);
query.setParameter("ap", pass);
User res = (User) query.uniqueResult();
tr.commit();
session.close();
return res;
}

public Admin adminEnter(String name, String pass) {
Session session = sessionFactory.openSession();
Transaction tr = null;
tr = session.beginTransaction();

String sql = "SELECT * FROM rails_admin WHERE admin_name = :an AND admin_pass = :ap";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Admin.class);
query.setParameter("an", name);
query.setParameter("ap", pass);
Admin res = (Admin) query.uniqueResult();
tr.commit();
session.close();
return res;
}

public Integer register(String name, String surname, String pass) {
Session session = sessionFactory.openSession();
Transaction transaction = null;
transaction = session.beginTransaction();
User user = new User();
user.setName(name);
user.setSurname(surname);
user.setPass(pass);
Integer id = (Integer) session.save(user);
transaction.commit();
session.close();
return id;
}

public List getAllUsers() {
Session session = sessionFactory.openSession();
Transaction tr = null;
tr = session.beginTransaction();

String sql = "SELECT * FROM rails_user";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(User.class);
List res = query.list();
tr.commit();
session.close();
return res;
}

public User getUserById(int id) {
Session session = sessionFactory.openSession();
Transaction tr = null;
tr = session.beginTransaction();

String sql = "SELECT * FROM rails_user WHERE user_id = :id";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(User.class);
query.setParameter("id", id);
User res = (User) query.uniqueResult();
tr.commit();
session.close();
return res;
}

public void banUser(int id) {
Session session = sessionFactory.openSession();
SQLQuery q = session.createSQLQuery("DELETE FROM rails_user WHERE request_id = :id");
q.addEntity(User.class);
q.setParameter("id", id);
q.executeUpdate();
}

public boolean verifyAdminEnter(String name, String pass) {
Session session = sessionFactory.openSession();
Transaction tr = null;
tr = session.beginTransaction();

String sql = "SELECT * FROM rails_admin WHERE admin_name = :an AND admin_pass = :ap";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Admin.class);
query.setParameter("an", name);
query.setParameter("ap", pass);
Admin res = (Admin) query.uniqueResult();
tr.commit();
session.close();
if (res.getName().equals(name) && res.getPass().equals(pass))
return true;
return false;
}

}

我的管理 Controller 类:

@ManagedBean(name = "rails_admin_panel")
@SessionScoped
public class AdminPanelController implements AdminAction{

private List<User> allUsers;
private List<Request> allRequests;

@EJB
private UserDAO userDAO = new UserDAO();
@EJB
private RequestDAO requestDAO = new RequestDAO();

public void viewAllUsers() {
allUsers = userDAO.getAllUsers();
}

public void viewAllRequests() {
allRequests = requestDAO.list();
}

public void deleteRequest(int id) {
requestDAO.removeRequestById(id);
}

public void deleteUser(int id) {
userDAO.banUser(id);
}

public List<Request> getAllRequests() {
return allRequests;
}

public List<User> getAllUsers() {
return allUsers;
}
}

你能帮帮我吗?

附言War Packaging

最佳答案

在启动应用程序服务器期间找不到接口(interface) pro.alexfly.lab4.dao.UserDAO 因为你没有。要修复它:

  • 尝试在此处使用您的接口(interface) IUserDAO:
@EJB
private UserDAO userDAO = new UserDAO();
  • 不要手动创建自己的实例,它应该由 JBoss 容器注入(inject)。
  • 检查您的接口(interface)是否有 @Local 注释。

关于java - EJB部署错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com