Spring的java.lang.ClassNotFoundException问题(100分求解)

delphi57 2007-03-06 07:46:32
开发环境JBuilder2005.
applicationContext.xml置于目录/WEB-INF/applicationContext.xml下,源文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://10.1.8.101:1433;DatabaseName=swai_oa</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>123</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>

<property name="mappingResources">
<list>
<value>com/test/User.hbm.xml</value>
</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
net.sf.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="userDAO" class="com.test.daolmp.UserDAOlmp">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="userDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
<property name="userDAO">
<ref local="userDAOProxy"/>
</property>
</bean>
</beans>
...全文
2568 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong_yse 2007-03-09
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException: com.test.daolmp.UserDAOlmp
有可能没有编译成功
ncowboy 2007-03-09
  • 打赏
  • 举报
回复
你是哪个版本的Hibernate?还在用net.sf.hibernate.dialect.SQLServerDialect??你前面已经使用了hibernate3的的嘛!!


试试这个方言:org.hibernate.dialect.SQLServerDialect
ncowboy 2007-03-09
  • 打赏
  • 举报
回复
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<ref bean="exampleHibernateProperties" />
</property>
</bean>
<bean id="exampleHibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
delphi57 2007-03-09
  • 打赏
  • 举报
回复
我找到问题,原来是com.test.daolmp.UserDAOlmp这个类是不是在classpath里面,我不知道为什么JBUILDER会出这个问题。
但是,它程序又报方言错误,我用的是SQL Server2000做了如下定义:
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
net.sf.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>

不知又错在哪里了!
xiaolei2656277 2007-03-07
  • 打赏
  • 举报
回复
很有可能是在LoginAction里面注入UserDao的时候出错了.你给UserDao配置代理的时候,你的UserDao有服务吗?也就是接口.如果你的UserDao没有实现任何接口,你的spring配置文件就配错了.就应不应该配置是基于接口的代理了,而是改成基于类的!
xiaolei2656277 2007-03-07
  • 打赏
  • 举报
回复
LZ把LoginAction的代码发出来啊.
xiaolei2656277 2007-03-07
  • 打赏
  • 举报
回复
是在启动的时候报的错吗?
likeBean 2007-03-07
  • 打赏
  • 举报
回复
检查一下UserDAOImpl.class是否在classloader下。
yeah920 2007-03-07
  • 打赏
  • 举报
回复
帮忙顶。
ruan1005snk 2007-03-07
  • 打赏
  • 举报
回复
你打jta.jar了吗
pronumen 2007-03-07
  • 打赏
  • 举报
回复
以前做个项目也遇到这样的问题(有时候正常) 最后发现2个bean相互调用了

所以要特别注意先后顺序
pronumen 2007-03-07
  • 打赏
  • 举报
回复
首先你检查一下你的那个userdaoimpl是否存在

既然你使用的是struts 在spring里面就不要配置
<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
<property name="userDAO">
<ref local="userDAOProxy"/>
</property>
</bean>
因为spring初始bean的时候是没有先后顺序的 你的LoginAction和userdao先后顺序就不一样。。。很有可能造成找不到的的错误。
interpb 2007-03-07
  • 打赏
  • 举报
回复
检查一下

com.test.daolmp.UserDAOlmp

这个类是不是在classpath里面
pronumen 2007-03-07
  • 打赏
  • 举报
回复
晕 我这里是webwork+hibernate+spring
要否?
delphi57 2007-03-07
  • 打赏
  • 举报
回复
哪位大哥有可以运行的Struts+hibernate+spring的例子,给小弟一份,谢谢
zlm1688@yahoo.com.cn
如果解决问题了,我再开一贴,送上100分
delphi57 2007-03-07
  • 打赏
  • 举报
回复
LoginAction的代码:

package com.test.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;

import com.test.dao.UserDAO;

import com.test.dao.UserDAO;

public class LoginAction extends Action {

private UserDAO userDAO;

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;// TODO Auto-generated method stub
String username = (String)loginForm.get("username");
String password = (String)loginForm.get("password");
if (userDAO.isValidUser(username,password)) {
return mapping.findForward("success");
} else {
return mapping.getInputForward();
}

}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}




delphi57 2007-03-06
  • 打赏
  • 举报
回复
高手帮帮我吧!
delphi57 2007-03-06
  • 打赏
  • 举报
回复
UserDAOlmp类如下:
package com.test.daolmp;

import com.test.dao.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.hibernate.Query;

public class UserDAOlmp extends HibernateDaoSupport implements UserDAO {
private static String hql = "from User as u where u.username=:userName"+"and u.password=:passWord";

public boolean isValidUser(String username, String password) {

Query query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(hql);
query.setString("userName", username);
query.setString("passWord", password);
return (query.list().size()>0);
}

}
我就没明白为什么报错:
19:38:55,828 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]

19:38:56,500 ERROR [ContextLoaderPlugIn] Context initialization failed

org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'userDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Bean class [com.test.daolmp.UserDAOlmp] not found; nested exception is java.lang.ClassNotFoundException: com.test.daolmp.UserDAOlmp

java.lang.ClassNotFoundException: com.test.daolmp.UserDAOlmp
delphi57 2007-03-06
  • 打赏
  • 举报
回复
struts-config文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">


<struts-config>
<data-sources />
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="password" type="java.lang.String"></form-property>
<form-property name="username" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards >
<forward name="success" path="/success.jsp"/>
</global-forwards>

<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy" />

</action-mappings>
<message-resources parameter="com.test.struts.ApplicationResources" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
</struts-config>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧