Java Struts2 don’;t在生产环境中填充对象集合

Java Struts2 don’;t在生产环境中填充对象集合,java,struts2,Java,Struts2,我在Struts2中有一个表单,它有一个电子表格,该电子表格以3行5列开始,当spreasheet已满时,使用javascript添加另一行 Java代码在glassfish 4.0和Java 7u25上运行 当我在netbeans上测试它时,运行良好,但当我在生产环境中实现并发送表单时,在action类中,我完成了前3行,但从第4行开始,得到了一个null对象 如果我创建一个数组大小,它会告诉我行数,但3后面的行总是以null形式到达 另外,如果我在glassfish中有两个应用程序,共享此结

我在Struts2中有一个表单,它有一个电子表格,该电子表格以3行5列开始,当spreasheet已满时,使用javascript添加另一行

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

当我在netbeans上测试它时,运行良好,但当我在生产环境中实现并发送表单时,在action类中,我完成了前3行,但从第4行开始,得到了一个null对象

如果我创建一个数组大小,它会告诉我行数,但3后面的行总是以null形式到达

另外,如果我在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;
    }      
}
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;
    }
}
很抱歉,我无法放置视图的代码,我没有这样做的权限


是什么导致了这个问题?

启用额外的日志记录和调试-希望你能在日志中看到一些东西。我在一个cleam工作区中重新编译ant的所有东西,现在工作正常,日志在一行中显示一个空指针,不存在。如果我有两个应用程序,共享这个结构,我现在有一个新问题,在glassfish中,我重新启动了第二个应用程序start to fail,出现此错误。在它开始失败之前,我所做的唯一更改是使用spring mail发送邮件并更新log4j库,我不明白发生了什么