我正在尝试在我的GWT项目中将hibernate与spring进行交互,下面是我的代码
public class MyWebServiceImpl extends RemoteServiceServlet implements
MyWebService {
public void myfirstmethod() {
// TODO Auto-generated method stub
}
public String signIn(String userid, String password) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
MySQLRdbHelper rdbHelper = (MySQLRdbHelper) ctx.getBean("ManagerJobs");
**//THIS IS THE POINT WHERE IT THROWS THE EXCEPTION**
return rdbHelper.getAuthentication(userid, password);
}
}
public class MySQLRdbHelper {
private Session session;
private SessionFactory sessionFactory;
/* FOR COUNT QUERY
* session.createCriteria(RuleSet .class)
.setProjection( Projections.projectionList()
.add( Projections.rowCount() ) )
.add( Subqueries.geAll("entry_id", bolgsEntries) )
.list();
*/
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public String getAuthentication(String userid, String password)
{
//Some detals like credit card are commented in the class
User users = null;
session = sessionFactory.openSession();
Criteria crit = session.createCriteria(User.class);
crit.add(Restrictions.eq("userName", userid));
crit.add(Restrictions.eq("password", password));
List rsList = crit.list();
for(Iterator it=rsList.iterator();
it.hasNext();
)
{
users = (User)it.next();
System.out.println(users.getUserName());
}
session.close();
return users.getUserName();
}
}
APPLICATIONCONTEXT.XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
default-lazy-init="true">
<!-- Datasource for database connection -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/patients" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.Patient.shared.User</value>
</list>
</property>
</bean>
<bean id ="ManagerJobs" class= "patient.persistence.MySQLRdbHelper">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
这就是例外
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ManagerJobs' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.hibernate.cfg.AnnotationConfiguration]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
答案 0 :(得分:1)
您在类路径中缺少slf4j,如
所示java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
获取并添加到应用程序。
答案 1 :(得分:-2)
This is my Controller file..........
@Controller
public class AutoCompleteController {
//@Resource(name = "blCatalogService")
//protected CatalogService catalogService;
@RequestMapping(value = "/AutoComplete", produces = "application/json")
public@ResponseBodyList<Product>AutoComplete(HttpServletRequest request,
HttpServletResponse response,Model model, CatalogService catalogService){
List <Product> list=new ArrayList<Product>();
String autostr=request.getParameter("autocomp");
System.out.println("AutoComplete Controller" + autostr);
try {
//database query searchString;
CatalogService catalogService1=new CatalogServiceImpl();
list = catalogService1.findProductsByName(autostr);
System.out.println("Result:"+list);
}
catch (Exception e) {
System.out.println("Error inside AutoComplete Controller");
e.printStackTrace();
}
return list;
}
}
This is my js File
function ajaxAutoComplete(a)
{
var querystring = "&isAjax=1&autocomp="+jQuery("#autocomp").val();
jQuery.ajax({
url: a,
dataType: "json",
type: "post",`enter code here`
data: querystring,
success: function (data){}
});
}
that the time it will produced that error.
500 Could not instantiate bean class
org.broadleafcommerce.core.catalog.service.CatalogService]: