java - 检索字段时出错

标签 java hibernate web-applications jasper-reports

我对 JasperReports 有疑问。尝试从数据库下载数据时,出现此错误:

net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : mybean
    at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
    at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
    at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
    at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:821)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:785)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1482)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:126)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: java.lang.NoSuchMethodException: Unknown property 'mybean' on class 'class com.mg.shared.ABC'
    at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1322)
    at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)
    at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846)
    at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426)
    at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:111)
    ... 31 more

这个问题对我来说很奇怪,因为 mybean 在 ABC 中。更何况,我的类(class) ABC 从其他类 DEF 获取一些数据,而 mybean 从 DEF 获取。当我尝试从 ABC 显示 mybean 时,我收到上述错误,但如果我从 DEF 获取 mybean,一切正常。

最佳答案

问题是由您的字段以大写字母开头引起的:

private String AdresDysponenta;

应该是

private String adresDysponenta;

用小a。 getter 和 setter 的名称应该保持不变。

这是因为 Jasper 使用 Apache Commons Beanutils(特别是 PropertyUtils),它不喜欢您使用以大写字母开头的实例字段这一事实。

一般约定是字段名以小写字母开头,但在 getter/setter 中是大写:

private int foo;

public int getFoo() {
  return foo;
}

public void setFoo(int foo) {
  this.foo = foo;
}

关于java - 检索字段时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7023692/

相关文章:

java - 将数字映射到 N 维网格/数组

java - Catch Try 让我在 Android Studio 调试中感到困惑

java - 当我只做一个列表时,为什么 Hibernate 会删除我的集合条目?

hibernate - Grails:从其他服务方法调用服务方法时出现问题

javascript - 构建基于纯 JavaScript 的 Web 应用程序(客户端和服务器端)是否有意义?

java - 有没有办法让 SharedPreferences 在我的整个 Android 应用程序中全局化?

java - 严重: PWC6117: File not found - Jetty

java - maria db 和 hibernate 排序规则的非法混合

.net - 与 Azure 表存储的连接失败

javascript - 使用 HtmlService 透明的 Google App Script 背景