[英]java.lang.NoClassDefFoundError: Could not initialize class DataLayer.HibernateAdapter
我已經將Java項目(Web服務)修改為Dynamic Web模塊。 我正在使用Tomcat 7.0.59作為服務器。 啟動服務器時,它開始運行沒有任何問題。 但是,一旦嘗試訪問Web服務方法,我將得到以下錯誤:-“ 無法初始化類DataLayer.HibernateAdapter java.lang.NoClassDefFoundError:無法初始化類DataLayer.HibernateAdapter ”。 除了將其標記為“重復”以外,任何人都請幫助我。 如果必須修改代碼,請提供詳細步驟。 謝謝!!
控制台日志:
Mar 10, 2015 2:09:07 PM com.sun.xml.ws.server.sei.EndpointMethodHandler invoke
SEVERE: Could not initialize class DataLayer.HibernateAdapter
java.lang.NoClassDefFoundError: Could not initialize class DataLayer.HibernateAdapter
at DataLayer.DatabaseContext.<init>(DatabaseContext.java:12)
at DataLayer.ConsumerDetails.getConsumerdetails(ConsumerDetail.java:84)
at ManageLayer.Authenticate(AuthenticationManager.java:50)
at ManageLayer.Console.GetProductsList(Console.java:484)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
DatabaseContext.java:
public class DatabaseContext
{
private final Session session;
public DatabaseContext() {
this.session = HibernateAdapter.getSessionFactory().openSession();
}
public Session delegate() {
return session;
}
public void close() {
session.flush();
session.close();
}
}
class HibernateAdapter
{
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try
{
return new AnnotationConfiguration()
.addAnnotatedClass(Consumer.class)
.addAnnotatedClass(Product.class)
.addAnnotatedClass(PriceTag.class)
.addAnnotatedClass(Barcode.class)
.configure().buildSessionFactory();
}
catch (Throwable e)
{
System.err.println("Exception while creating Initial SessionFactory" + e);
throw new ExceptionInInitializerError(e);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
public static void shutdown() {
getSessionFactory().close();
}
}
NoClassDefFoundError
通常指示您的類路徑不正確。 檢查您的類路徑中是否具有正確的Hibernate庫。 例如,在項目設置中(如果使用Eclipse)。 現在,您沒有正確包括DataLayer.HibernateAdapter
類,因此Tomcat無法找到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.