Struts2不会在生产环境中填充对象集合

时间:2013-10-25 22:32:44

标签: java struts2

我在Struts2中有一个包含电子表格的表单,该电子表格以3行和5列开头,当spreasheet已满时,使用javascript添加另一行。

Java代码在glassfish 4.0和java 7u25上运行

当我在netbeans上测试时运行正常,但是当我在生产中实现并发送表单时,在动作类中我得到前3行完整但从4开始获取空对象

如果我使数组大小告诉我行数,但3后面的行总是以空值

此外,如果我有两个应用程序,共享此结构,在glassfish中,我重启服务器,第二个应用程序开始失败并出现此错误。

pojo和action类的代码是

OrdenCargaPojo

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Administrador
 */
public class OrdenCargaPojo {
    protected int id = 0;
    protected List<ArticulosPojo> articulos = new ArrayList<ArticulosPojo>();
    protected double importe = 0;
    protected boolean soloLectura = false;

    // Cargo la configuracion de la grilla
    public OrdenCargaPojo() {
        // inicio la grilla
        articulos.add(new ArticulosPojo());
        articulos.add(new ArticulosPojo());
        articulos.add(new ArticulosPojo());
    }

    /**
     * @return the articulos
     */
    public List<ArticulosPojo> getArticulos() {
        return articulos;
    }

    /**
     * @param articulos the articulos to set
     */
    public void setArticulos(List<ArticulosPojo> articulos) {
        this.articulos = articulos;
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the soloLectura
     */
    public boolean isSoloLectura() {
        return soloLectura;
    }

    /**
     * @param soloLectura the soloLectura to set
     */
    public void setSoloLectura(boolean soloLectura) {
        this.soloLectura = soloLectura;
    }

    /**
     * @return the totalGrilla
     */
    public double getImporte() {
        return importe;
    }

    /**
     * @param totalGrilla the totalGrilla to set
     */
    public void setImporte(double importe) {
        this.importe = importe;
    }      
}

ArticulosPojo

import java.io.Serializable;
import java.util.Date;

/**
 *
 * @author Administrador
 */
public class ArticulosPojo implements Serializable {
    private static final long serialVersionUID = 1L;
    private int id;
    private String etiqueta = "";
    private String tropa = "";
    private String garron = "";
    private Date fechaFaena;
    private double peso = 0;

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the etiqueta
     */
    public String getEtiqueta() {
        return etiqueta;
    }

    /**
     * @param etiqueta the etiqueta to set
     */
    public void setEtiqueta(String etiqueta) {
        this.etiqueta = etiqueta;
    }

    /**
     * @return the tropa
     */
    public String getTropa() {
        return tropa;
    }

    /**
     * @param tropa the tropa to set
     */
    public void setTropa(String tropa) {
        this.tropa = tropa;
    }

    /**
     * @return the garron
     */
    public String getGarron() {
        return garron;
    }

    /**
     * @param garron the garron to set
     */
    public void setGarron(String garron) {
        this.garron = garron;
    }

    /**
     * @return the fechaFaena
     */
    public Date getFechaFaena() {
        return fechaFaena;
    }

    /**
     * @param fechaFaena the fechaFaena to set
     */
    public void setFechaFaena(Date fechaFaena) {
        this.fechaFaena = fechaFaena;
    }

    /**
     * @return the peso
     */
    public double getPeso() {
        return peso;
    }

    /**
     * @param peso the peso to set
     */
    public void setPeso(double peso) {
        this.peso = peso;
    }
}

GuardarOrdenCargaAction

/**
 * llama a los dao para guardar los datos
 */
public class GuardarOrdenCargaAction extends ActionSupport{
    private OrdenCargaPojo ordenCarga = new OrdenCargaPojo();

    /**
     * carga y llama a los dao para guardar los datos
     * @return
     * @throws Exception
     */
    @Override
    public String execute() throws Exception {

        for (ArticulosPojo articulos : ordenCarga.getArticulos()) {
            if(articulos.getId() > 0){ // error - nullpointer luego de la 3ra fila
                System.out.println(articulos.getId());
            }
        }

        return SUCCESS;
    }


    /**
     * @return the OrdenCarga
     */
    public OrdenCargaPojo getOrdenCarga() {
        return ordenCarga;
    }

    /**
     * @param OrdenCarga the OrdenCarga to set
     */
    public void setOrdenCarga(OrdenCargaPojo ordenCarga) {
        this.ordenCarga = ordenCarga;
    }
}

抱歉,我无法提供视图代码,我无权这样做

可能导致此问题的原因是什么?

0 个答案:

没有答案