为什么总是抛出Cannot find class这个异常呢

zcywell 2009-09-23 07:10:42
这是我的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.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:sqlserver://localhost:1433;DatabaseName=db_personManager</value>
</property>
<property name="username">
<value>1</value>
</property>
</bean>
<bean id="localSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/wy/form/ManagerForm.hbm.xml</value>
</list>
</property>
</bean>
<bean id="objectDao" class="com.wy.dao.ObjectDao">
<property name="sessionFactory">
<ref bean="localSessionFactory"/>
</property>
</bean>
<bean name="/manager" class="com.wy.action.ManagerAction" singleton="false">
<property name="objectDao">
<ref bean="objectDao"/>
</property>
</bean>
</beans>
下面是我的struts-config.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>

<form-beans>
<form-bean name="managerForm" type="com.wy.form.ManagerForm"/>
</form-beans>

<action-mappings>
<action path="/manager"
type="org.springframework.web.struts.DelegatingActionProxy"
name="managerForm"
validate="false"
scope="request"
parameter="method"
>
<forward name="managerCheck" path="/dealwith.jsp"/>
<forward name="queryManager" path="/manager_query.jsp"/>
<forward name="errorManager" path="/manager_insert.jsp"/>
</action>
</action-mappings>

<!--
SelfRequestProcessor继承了DelegatingRequestProcessor
-->
<controller processorClass="com.wy.tool.SelfRequestProcessor" />

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>

</struts-config>
我的ManagerAction.java在com.wy.action这个包下。
启动服务器时总是抛出下面的异常:
严重: StandardWrapper.Throwable
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.wy.action.ManagerAction] for bean with name '/manager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.wy.action.ManagerAction
Caused by: java.lang.ClassNotFoundException: com.wy.action.ManagerAction
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:177)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:313)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:912)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:165)
at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:687)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:397)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:330)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2009-9-23 18:42:09 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /05 threw load() exception

仔细检查的ManagerAction这个类的路径,没什么问题,为什么总是出现错误呢?
请高手指点!!!

...全文
9001 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfhappy 2009-10-23
  • 打赏
  • 举报
回复 1
你好!你看看你项目WebRoot\WEB-INF\classes下面有没有你的ObjectDao的class即(ObjectDao.class)文件,这是没有编译ObjectDao.java文件造成的类找不到异常,你可以在dos命令下对java文件进行编译然后拷贝到里面,不知道可不可以,我这里dos下面编译不了,所以我没有试验。希望这些对你有帮助。
mfhappy 2009-10-23
  • 打赏
  • 举报
回复
我的路径也是正确的,但就是一直出现这个错误。
mfhappy 2009-10-23
  • 打赏
  • 举报
回复
你好!想请问下,你这个问题解决了吗?我现在也出现了这个问题,不知道该如何解决,如果你已经解决了,请帮下忙,说说你的解决方法可以吗???谢谢!我的框架和你的是一样的。
zcywell 2009-09-24
  • 打赏
  • 举报
回复
请问一下。16楼所说的是哪个jar文件,我所有的jar文件都copy到WEB/lib下了
CCTV_13 2009-09-24
  • 打赏
  • 举报
回复
你确定你的jar放到classpath下面了?
又或者检查下jar包,用rar打开,进去看看这个路径下到底有没有。
menjianguo 2009-09-24
  • 打赏
  • 举报
回复
还是配置的问题。
一直没找到com.wy.action.ManagerAction
yuhonggood 2009-09-23
  • 打赏
  • 举报
回复
楼主你在web.xml配置的action是什么名字

如果是action 那么
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/action-servlet.xml,/WEB-INF/applicationContext.xml"/>
</plug-in>
加上一句看看
leavin521 2009-09-23
  • 打赏
  • 举报
回复
我只是建议 楼主去试下删除里面的文件, 有时候可能就是因为这样改完了 还是出现同样的异常
zcywell 2009-09-23
  • 打赏
  • 举报
回复
我已经试过了,加上scope="prototype",或者去掉scope="prototype",出现的错误还是没有改变的,至于把tomcat里面webapps文件夹里面生成的文件和work文件夹里面生成的文件 全删除,然后再重启,本人觉得没有必要,因为只要不是在Myeclipse环境下启动Tomcat时,Tomcat都能正常的运行
yuhonggood 2009-09-23
  • 打赏
  • 举报
回复
楼主你看看这句 在Spring2.5中是没有singleton 这个属性的 应该是scope="prototype"
<bean name="/manager" class="com.wy.action.ManagerAction" singleton="false">
至于以后的版本我不清楚 可能是这里的错误
leavin521 2009-09-23
  • 打赏
  • 举报
回复
你要是还没找到的话,就把tomcat里面 webapps文件夹 里面生成的文件 和 work文件夹里面生成的文件 全删除,然后再重启。看看行不
zcywell 2009-09-23
  • 打赏
  • 举报
回复
在 ManagerAction中我已经了objectDao的对象,并提供它的setter 方法,看样不是那里的错误。依然谢谢楼上的兄台!
leavin521 2009-09-23
  • 打赏
  • 举报
回复
<bean name="/manager" class="com.wy.action.ManagerAction" singleton="false">
<property name="objectDao">
<ref bean="objectDao"/>
</property>
</bean>
你使用spring 来代理 action bean ,由于你有<property name="objectDao">这个配置,你必须在 ManagerAction中 声明一个 叫做 objectDao 的对象, 并提供它的setter 方法 。如果不是这里的问题 ,我也不知道了。。
等待高手的回答。。
zcywell 2009-09-23
  • 打赏
  • 举报
回复
我已经检查好多遍了,路径没什么问题,我的Tomcat也是6.0以上的,
zcywell 2009-09-23
  • 打赏
  • 举报
回复
不好意思啊,楼上说的的我好想不太明白,我的理解是:objectDao只是对持久层的一个操作,在业务逻辑层注入它不会有问题的。
酒浪子 2009-09-23
  • 打赏
  • 举报
回复
com.wy.action.ManagerAction看看是不是这个类的路径写错了,还有tomcat最好用6.0以上的版本
lovenl058 2009-09-23
  • 打赏
  • 举报
回复
你用main方法测试下。
如果成功
就该是进入 action 里面
<bean name="/manager" class="com.wy.action.ManagerAction" singleton="false">
<property name="objectDao">
<ref bean="objectDao"/>
</property>
</bean>

ManagerAction 这个action里面调用方法声明 的 biz 层 注入。
声明的变量 就要 代替<property name="objectDao"> 里面 的 objectDao
zcywell 2009-09-23
  • 打赏
  • 举报
回复
public class ObjectDao extends HibernateDaoSupport {

// condition为条件,查询一组数据,该方法的返回类型为Object
public Object getObjectForm(String condition) {
List<Object> list = null;
Object object = null;
try {
list = getHibernateTemplate().find(condition);
if (list.size() == 1) {
object = (Object) list.get(0);
}
} catch (DataAccessException ex) {
ex.printStackTrace();
}
return object;
}

// condition为条件,查询多组数据,该方法的返回类型为List
public List getObjectList(String condition) {
List list = null;
try {
list = getHibernateTemplate().find(condition);
} catch (DataAccessException ex) {
ex.printStackTrace();
}
return list;
}

// 修改一组数据,该方法的返回类型为boolean
public boolean updateObjectForm(Object object) {
boolean flag = false;
try {
getHibernateTemplate().update(object);
flag = true;
} catch (DataAccessException ex) {
ex.printStackTrace();
}
return flag;
}
.........
}
objectDao并没有继承Action,不可能声明它的
lovenl058 2009-09-23
  • 打赏
  • 举报
回复
<bean name="/manager" class="com.wy.action.ManagerAction" singleton="false">
<property name="objectDao">
<ref bean="objectDao"/>
</property>
</bean>

去看看 Dao层里面的方法 <property name="objectDao">
是不是声明这个阿。头晕了。
PyTorch版的YOLOv5是轻量而高性能的实时目标检测方法。利用YOLOv5训练完自己的数据集后,如何向大众展示并提供落地的服务呢?   本课程将提供相应的解决方案,具体讲述如何使用Web应用程序框架Flask进行YOLOv5的Web应用部署。用户可通过客户端浏览器上传图片,经服务器处理后返回图片检测数据并在浏览器中绘制检测结果。   本课程的YOLOv5使用ultralytics/yolov5,在Ubuntu系统上做项目演示,并提供在Windows系统上的部署方式文档。 本项目采取前后端分离的系统架构和开发方式,减少前后端的耦合。课程包括:YOLOv5的安装、 Flask的安装、YOLOv5的检测API接口python代码、 Flask的服务程序的python代码、前端html代码、CSS代码、Javascript代码、系统部署演示、生产系统部署建议等。   本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793 Windows系统 https://edu.csdn.net/course/detail/30923 《YOLOv5(PyTorch)目标检测:原理与源码解析》https://edu.csdn.net/course/detail/31428 《YOLOv5(PyTorch)目标检测实战:Flask Web部署》https://edu.csdn.net/course/detail/31087 《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》https://edu.csdn.net/course/detail/32303

67,513

社区成员

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

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