首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP PropertyNotFoundException

JSP PropertyNotFoundException
EN

Stack Overflow用户
提问于 2012-09-03 10:23:14
回答 1查看 1.3K关注 0票数 0

我有一个基于Apache Tomcat + Hibernate的应用程序。我有一个MyModel类和一个MyViewModel类,该类装饰MyModel类型的对象。

当我收到请求时,我会在映射中返回MyViewModel的几个实例。假设一个实例是x。当我试图访问${x.comments}时,我得到了一个未找到属性的异常。

我仔细检查过MyModel是否包含getComments()和setComments()方法。MyViewModel还包含getComments()方法,该方法在修饰对象上调用getComments(),如果返回null,则返回空字符串。

现在令人惊讶的是,昨天当我在代码中的任何地方添加注释字段时,这段代码都可以工作了。我的数据库仍然有注释字段。但不知何故,bean没有被正确识别。

我对代码做了一些修改,现在我使用jquery-ui来访问页面,但我看不出这有什么不同,因为我可以访问除注释字段之外的所有其他字段。

Hibernate日志显示select查询没有获取注释字段。

我尝试重新启动服务器,但我的Eclipse IDE似乎什么都不起作用。

你能帮我找出问题所在吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-03 13:45:31

修好了!

类MyViewModel缺少默认构造函数。

为什么我不能早点抓住它?

我在WEB-INF/lib下有一组旧的jar文件。但是,当我在Eclipse中配置项目时,我在一个单独的目录中下载了较新版本的jar文件,并将它们添加到构建路径中,但是我的WEB-INF/lib仍然包含旧的jar文件。我最终计划有新的版本,但由于一切都很好,我没有费心。

现在,不知何故,这是工作昨天,但我可能已经做了某种“清理”之前,提交。我一定是从MyViewModel中删除了默认构造函数。但是在测试之前,我可能没有重新启动服务器,因此它工作得很好。

理想情况下,这应该在部署过程中被捕获。但不知何故,新版本的jars并没有捕捉到这个错误。当我切换到WEB-INF/lib目录中的jars时,服务器开始在初始化期间抛出一个异常,指出缺省构造函数丢失,因为它导致bean无法初始化。这解决了这个问题。

我试图重现这种情况。我删除了默认的构造函数,将旧的.classpath文件放回项目目录中,它不会在部署期间捕获错误,但在运行时会失败。原因是.classpath中的一些依赖项不是必需的,也无法满足。所以Eclipse向我显示了一个红色的感叹号(而不是通常表示构建问题的十字号)。我现在明白了,感叹号意味着我的项目上有一个验证错误,项目没有重建,因为构建路径包含缺少的依赖项。

因此,我从构建路径中删除了缺少的依赖项,红色感叹号也消失了。现在,错误是在部署过程中捕获的。

不使用Maven就这么多了。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12241324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档