参考Vogella
我正在尝试简单的事情。 hibernate初始化在DeviceDetails.getInstance()
单例类中完成一次。我试图按照Vogella教程来创建一个对象并重用它。
web服务
@POST
@Path("Request")
@Consumes({ MediaType.APPLICATION_JSON })
public Response post(JAXBElement<CDeviceDetails> device) {
String deviceUniqueString = null;
CDeviceDetails deviceDetails = (CDeviceDetails) device.getValue();
deviceUniqueString = HibernateDAO.instance.getDeviceDetails().insertRow(deviceDetails, false);
if (deviceUniqueString != null) {
return Response.ok(deviceUniqueString).build();
} else {
return Response.serverError().build() ;
}
}
DAO课程
public enum HibernateDAO {
instance;
public static final String DEVICE_DETAILS = "deviceDetails";
public static final String CONNECTION_DETAILS = "connectionDetails";
private Map<String, ReadOnlyOperations> contentProvider = new HashMap<String, ReadOnlyOperations>();
private HibernateDAO() {
contentProvider.put(DEVICE_DETAILS, DeviceDetails.getInstance());
contentProvider
.put(CONNECTION_DETAILS, ConnectionDetails.getInstance());
}
public DeviceDetails getDeviceDetails() {
return (DeviceDetails) contentProvider.get(DEVICE_DETAILS);
}
public ConnectionDetails getConnectionDetails() {
return (ConnectionDetails) contentProvider.get(CONNECTION_DETAILS);
}
}
修改
问题:
在catalina日志文件中,我收到了SEVERE: The web application [/MyWARFile] is still processing a request that has yet to finish.
再次编辑
每个Web服务都连接到特定的数据库表。每个Web服务使用一个hibernate对象与该表进行交互,在本例中为DeviceDetails
。第一次,DeviceDetails.getInstance,初始化hibernate。
基本上我正在寻找一个持久对象存储来存储对hibernate读写方法的引用。随后,所有Web服务都应从该对象库中获取hibernate的引用并读取/写入数据库。
问题
WAR
文件的加载时初始化hibernate?