Java Hibernate代码不适用于live server,但适用于localhost
我在Hibernate中遇到了问题。我的代码是在本地服务器上工作的,而不是在实时服务器上。我正在使用Java Hibernate代码不适用于live server,但适用于localhost,java,hibernate,netbeans,compiler-errors,Java,Hibernate,Netbeans,Compiler Errors,我在Hibernate中遇到了问题。我的代码是在本地服务器上工作的,而不是在实时服务器上。我正在使用 public void saveEmployee(Emp employee) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transaction = session.beginTransaction(); session.save(employee
public void saveEmployee(Emp employee) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
session.save(employee);
transaction.commit();
session.close();
}
用于数据保存。对于HibernateUtil:
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
/**
* Hibernate Utility class with a convenient method to get Session Factory
* object.
*
* @author Jitendra
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
使用此代码
stacktrace上的错误是
java.lang.NoClassDefFoundError: Could not initialize class javainfinite.DAOImpl.HibernateUtil
at javainfinite.DAOImpl.EmployeeDaoImpl.showAllEmployees(EmployeeDaoImpl.java:37)
at Controller.EmployeeController.doPost(EmployeeController.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:285)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2376)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
几天前我也遇到了同样的错误。“NoClassDefFoundError”异常告诉您,您的类不是由编译器/生成器发布的。因此,它在您的实时系统上不可用
在我的例子中,我想将导入的java类发布到tomcat服务器。我的解决方案是调整tomcat的部署描述符,并添加导入的类以将其发布到库文件夹中 远程Mysql数据库访问
尝试在CPanel works for me中的远程Mysql中添加您的ip您可以将堆栈跟踪添加到问题中,而不是发布屏幕截图吗?在您放置hibernate配置文件的位置添加完整的堆栈跟踪(所有异常都是由异常引起的)?insight default PackeGet消息实际上非常清楚:“java.lang.NoClassDefFoundError:无法初始化类javainfinite.DAOImpl.HibernateUtil”-您的类
HibernateUtil
(根据名称,我假设它是javainfinite.DAOImpl
的内部类)找不到。我假设打包或类路径有问题,所以您应该检查一下。如果我像您一样遵循相同的过程,您可以向我展示/解释如何准确地解决它。我使用Eclipse IDE。在那里,您可以右键单击项目并转到属性。选择“部署程序集”“。在那里,您必须添加所有应发布到服务器的JAR(例如,对于Tomcat,添加到“WEB-INF/lib”文件夹)。