Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.el.PropertyNotFoundException:未找到属性“jobId”_Java_Jsp - Fatal编程技术网

javax.el.PropertyNotFoundException:未找到属性“jobId”

javax.el.PropertyNotFoundException:未找到属性“jobId”,java,jsp,Java,Jsp,我在尝试启动web服务时收到此错误消息:org.apache.jasper.jaspereException:javax.el.PropertyNotFoundException:com.bridge.service.service类型上未找到属性“jobId” 奇怪的是,jobId是在服务和我的数据库中定义的,它将从中提取数据 下面是应该访问数据的函数 public List<Service> getAllData() { List<Service> data

我在尝试启动web服务时收到此错误消息:org.apache.jasper.jaspereException:javax.el.PropertyNotFoundException:com.bridge.service.service类型上未找到属性“jobId”

奇怪的是,jobId是在服务和我的数据库中定义的,它将从中提取数据

下面是应该访问数据的函数

public List<Service> getAllData() {

    List<Service> data = new ArrayList<Service>();

    try {
        Class.forName(jdbc_driver);
        // Connect to DB
        Connection conn = DriverManager.getConnection(db_url, USER, PASS);

        Statement statement = conn.createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM email_data");
        while (rs.next()) {
            Service serv = new Service();
            //UUID id = null;
            serv.setId(rs.getString("jobId"));  // error here
            serv.setName(rs.getString("jobName"));
            serv.setStatus(rs.getString("jobStatus"));
            serv.setStart(rs.getTimestamp("start"));
            serv.setFinish(rs.getTimestamp("finish"));
            data.add(serv);
        }
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (Exception e) {
        System.err.println("listing data, ya fucked up boi");
        System.err.println(e.getMessage());
    }

    return data;
}
有什么想法吗?我在这里不知所措

编辑:这里是Service.java:

public class Service {

private String jobId;
private String jobName;
private String jobStatus;
private Timestamp jobStart;
private Timestamp jobFinish;

public Service() {
    // empty constructor
}

public Service(String id, String n, String s) {
    jobId = id;
    jobName = n;
    jobStatus = s;
}

public String getId() {
    return this.jobId;
}

public String getName() {
    return this.jobName;
}

public String getStatus() {
    return this.jobStatus;
}

public void setId(String id) {
    this.jobId = id;
}

public void setName(String name) {
    this.jobName = name;
}

public void setStatus(String status) {
    this.jobStatus = status;
}

public void setStart(Timestamp time) {
    this.jobStart = time;
}

public void setFinish(Timestamp time) {
    this.jobFinish = time;
}

// SQL Info
static final String jdbc_driver = "com.mysql.jdbc.Driver";
static final String db_url = "jdbc:mysql://localhost:3306/email_data";

// SQL creds
static final String USER = "<redacted>";
static final String PASS = "<redacted>";

public void hygienePost(Service serv) throws Exception {

    NewTask.toRabbit(serv.getId(), serv.getName(), serv.getStatus());
    // System.out.println(serv.getId()+serv.getName()+serv.getStatus());

}

public List<Service> getAllData() {

    List<Service> data = new ArrayList<Service>();

    try {
        Class.forName(jdbc_driver);
        // Connect to DB
        Connection conn = DriverManager.getConnection(db_url, USER, PASS);

        Statement statement = conn.createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM email_data");
        while (rs.next()) {
            Service serv = new Service();
            // UUID id = null;
            /*
               serv.setId(rs.getString("jobId"));
               serv.setName(rs.getString("jobName"));
               serv.setStatus(rs.getString("jobStatus"));
               serv.setStart(rs.getTimestamp("start"));
               serv.setFinish(rs.getTimestamp("finish")); data.add(serv);
             */
            ResultSetMetaData rsmd = rs.getMetaData();
            int columnCount = rsmd.getColumnCount();

            // The column count starts from 1
            for (int i = 1; i < columnCount + 1; i++) {
                String name = rsmd.getColumnName(i);
                System.out.println(rs.getString(1));
            }
        }
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (Exception e) {
        System.err.println("listing data, ya fucked up boi");
        System.err.println(e.getMessage());
    }

    return data;
}
}

在getAllData方法中,您正在用小写的i来编写jobid,但它是用大写的i来声明的

正如我从您发布的代码中看到的,jobId的getter方法是setID。因此,我猜测您的属性称为id,而不是jobId。确保在您的服务类中显示如下内容:

public class Service {
private String jobId;

    public void setJobId(String jobId) {
        this.jobId = jobId;
    }

    public String getJobId() {
        return this.jobId;
    }
}
@湿婆首先发现了这个错误。因此,如果这修正了你的错误,考虑投票给他而不是我。

< P>你在JealAldDATA方法中用小写I写JooID,但是它是用Capital I.< /P>声明的。
serv.setId(rs.getString("jobId"));
正如我从您发布的代码中看到的,jobId的getter方法是setID。因此,我猜测您的属性称为id,而不是jobId。确保在您的服务类中显示如下内容:

public class Service {
private String jobId;

    public void setJobId(String jobId) {
        this.jobId = jobId;
    }

    public String getJobId() {
        return this.jobId;
    }
}
@湿婆首先发现了这个错误。因此,如果这纠正了你的错误,考虑投票给他而不是我。< / P >
serv.setId(rs.getString("jobId"));
首都一

首都I.

它的贾斯珀例外

serv.setId(rs.getString("jobid"));  // error here
您已经在服务类中提到了setID。那么属性就是id

所以你需要这样做

<td><c:out value="${job.id}"/></td>
所以在bean类中不应该有不同的propname和getter setter。应该是一样的

所以,请改变getter和setter

添加getJobid和setJobid。

它的Jasper异常

serv.setId(rs.getString("jobid"));  // error here
您已经在服务类中提到了setID。那么属性就是id

所以你需要这样做

<td><c:out value="${job.id}"/></td>
所以在bean类中不应该有不同的propname和getter setter。应该是一样的

所以,请改变getter和setter


添加getJobid和setJobid。

啊,我明白了,更改了,但不起作用。更新OP.ah我明白了,改变了,但没用。更新OP。然后显示您的服务类,因为jsp表达式语言在您的服务类中找不到属性jobId。您确定服务类有这样一个属性,它是公开的公共getter/setter吗?请提供服务类的代码。然后显示您的服务类,因为jsp表达式语言在您的服务类中找不到属性jobId。您确定服务类有这样一个属性,它是公开的公共getter/setter吗?请提供服务类的代码。是的,如果属性名称是id而不是jobId(我们可以从getter名称猜出),这应该是正确的答案。是的,如果属性名称是id而不是jobId(我们可以从getter名称猜出),这应该是正确的答案。