Java 在使用Struts2配置的Jasper上找不到jrxml
我正试图通过遵循一个教程,用Struts2配置Jasper。但我在运行应用程序时出现了以下错误 net.sf.jasperreports.engine.JRException:java.io.FileNotFoundException:Struts2Example/jasper/our_jasper_template.jrxml没有这样的文件或目录 我已经在网上搜索了好几个小时,但我无法找到解决问题的方法。谁能帮我解决这个问题。我的代码如下Java 在使用Struts2配置的Jasper上找不到jrxml,java,struts2,jasper-reports,Java,Struts2,Jasper Reports,我正试图通过遵循一个教程,用Struts2配置Jasper。但我在运行应用程序时出现了以下错误 net.sf.jasperreports.engine.JRException:java.io.FileNotFoundException:Struts2Example/jasper/our_jasper_template.jrxml没有这样的文件或目录 我已经在网上搜索了好几个小时,但我无法找到解决问题的方法。谁能帮我解决这个问题。我的代码如下 <struts> <pack
<struts>
<package name="default" namespace="/" extends="jasperreports-default">
<action name="myJasperTest" class="com.dilan.user.action.JasperAction">
<result name="success" type="jasper">
<param name="location">/jasper/our_compiled_template.jasper</param>
<param name="dataSource">myList</param>
<param name="format">PDF</param>
</result>
</action>
</package>
</struts>
我的动作课
package com.dilan.user.action;
import com.opensymphony.xwork2.ActionSupport;
import net.sf.jasperreports.engine.JasperCompileManager;
import java.util.ArrayList;
import java.util.List;
public class JasperAction extends ActionSupport {
private List<Person> myList;
public String execute() throws Exception {
// Create some imaginary persons.
Person p1 = new Person(new Long(1), "Patrick", "Lightbuddie");
Person p2 = new Person(new Long(2), "Jason", "Carrora");
Person p3 = new Person(new Long(3), "Alexandru", "Papesco");
Person p4 = new Person(new Long(4), "Jay", "Boss");
// Store people in our dataSource list (normally they would come from a database).
myList = new ArrayList<Person>();
myList.add(p1);
myList.add(p2);
myList.add(p3);
myList.add(p4);
try {
JasperCompileManager.compileReportToFile(
"Struts2Example/jasper/our_jasper_template.jrxml",
"Struts2Example/jasper/our_compiled_template.jasper");
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
public List<Person> getMyList() {
return myList;
}
}
我的jrxml
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="jasper_test">
<!-- Our fields from the Person class. -->
<field name="name" class="java.lang.String"/>
<field name="lastName" class="java.lang.String"/>
<title>
<band height="50">
<staticText>
<reportElement x="0" y="0" width="180" height="15"/>
<textElement/>
<text><![CDATA[Struts 2 JasperReports Sample]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band/>
</pageHeader>
<columnHeader>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="180" height="20"/>
<textElement>
<font isUnderline="true"/>
</textElement>
<text><![CDATA[NAME]]></text>
</staticText>
<staticText>
<reportElement x="360" y="0" width="180" height="20"/>
<textElement>
<font isUnderline="true"/>
</textElement>
<text><![CDATA[LASTNAME]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20">
<textField>
<reportElement x="180" y="0" width="180" height="15"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]> </textFieldExpression>
</textField>
<textField>
<reportElement x="360" y="0" width="180" height="15"/>
<textElement/>
<textFieldExpression><![CDATA[$F{lastName}]]> </textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band/>
</columnFooter>
<pageFooter>
<band height="15">
<staticText>
<reportElement x="0" y="0" width="40" height="15"/>
<textElement/>
<text><![CDATA[Page:]]></text>
</staticText>
<textField>
<reportElement x="40" y="0" width="100" height="15"/>
<textElement/>
<textFieldExpression class="java.lang.Integer"><! [CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band/>
</summary>
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Struts 2 Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我按照本教程创建了我的应用程序
下面我附上了我的项目结构的图像。谁能帮我解决这个 Jasper文件需要作为一个文件存在于您的web内容或类路径中,我忘记了这一点,但我认为是在web内容中。Hi Dave的可能副本我已将其放在类路径中,但它不起作用。。。但我还没有试着把它放到网络内容上。你的图书馆里乱七八糟。struts2 jasperplugin 2.3.16.1和2.3.20,带有struts2-core-2.3.1.2和itext 1.3.1。认真地
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Struts 2 Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>