简体   繁体   English

JasperReports:获取java.lang.IllegalArgumentException:名称

[英]JasperReports: Getting java.lang.IllegalArgumentException: name

I am currently working on a project with jasper reports, netbeans 7.1.1, and Glassfish server. 我目前正在使用jasper报告,netbeans 7.1.1和Glassfish服务器进行项目。 It seems that report with image runs on a Jasper successfully but when I run through my web application, exception has thrown as java.lang.IllegalArgumentException: name . 似乎带有图像的报告已成功在Jasper上运行,但是当我通过Web应用程序运行时,异常已引发为java.lang.IllegalArgumentException: name

SEVERE: java.lang.IllegalArgumentException: name
at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:460)
at sun.misc.URLClassPath.findResource(URLClassPath.java:146)
at java.net.URLClassLoader$2.run(URLClassLoader.java:385)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:382)
at java.lang.ClassLoader.getResource(ClassLoader.java:1003)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.getResource(APIClassLoaderServiceImpl.java:205)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at org.glassfish.web.loader.WebappClassLoader.getResource(WebappClassLoader.java:1153)
at net.sf.jasperreports.engine.util.JRResourcesUtil.findClassLoaderResource(JRResourcesUtil.java:473)
at net.sf.jasperreports.engine.util.JRLoader.loadBytesFromLocation(JRLoader.java:464)
at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:176)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:944)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:891)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:256)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:482)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2011)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeader(JRVerticalFiller.java:603)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeaders(JRVerticalFiller.java:523)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:250)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:110)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:923)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:59)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
at org.serv.ReportServlet.generateReport(ReportServlet.java:142)
at org.serv.ReportServlet.doPost(ReportServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)

Can anyone help me please 谁能帮我

Just wrap the call to getResource on the ClasssLoader with a try/catch block: 只需使用try / catch块将对getResource的调用包装在ClasssLoader上:

URL url = null;
try {
    url = loader.getResource(fileName);
} catch (final Exception e) {
}

After that statement the url is checked for a null value and if it's null you already try to create a java.io.File object of the fileName . 在该语句之后,将检查url是否为null值,如果为null,则您已经尝试创建fileNamejava.io.File对象。 Maybe it's even a better solution to first check if the passed fileName is a valid File and only ask the ClassLoader for an URL if it's not an existing file. 也许最好的办法是先检查传递的fileName是否是有效的File,然后仅向ClassLoader询问URL(如果它不是现有文件)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.IllegalArgumentException:name - java.lang.IllegalArgumentException: name java.lang.IllegalArgumentException:列名无效 - java.lang.IllegalArgumentException: Invalid column name java.lang.illegalargumentexception 没有为该名称定义查询 [...] - java.lang.illegalargumentexception no query defined for that name [...] 获取错误 java.lang.IllegalArgumentException - Getting error java.lang.IllegalArgumentException jnetpcap获取java.lang.IllegalArgumentException - jnetpcap Getting java.lang.IllegalArgumentException java.lang.IllegalArgumentException - java.lang.IllegalArgumentException java.lang.IllegalArgumentException - java.lang.IllegalArgumentException 不断收到“java.lang.IllegalArgumentException:没有为该名称定义查询”,即使我有具有适当名称的@NamedQuery - Keep getting “java.lang.IllegalArgumentException: No query defined for that name” even though I have @NamedQuery with an appropriate name 获取 java.lang.IllegalArgumentException “名称不能为空!” 更新 MongoDB 集合时 - Getting java.lang.IllegalArgumentException “Name must not be null!” when updating MongoDB collection 出现错误:java.lang.IllegalArgumentException:不是有效的域名:jhipster uaa项目中的“ 192.168.0.202” - Getting Error: java.lang.IllegalArgumentException: Not a valid domain name: '192.168.0.202' in jhipster uaa project
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM