简体   繁体   中英

Overload in web application server

I have created a web application to manage a veterinary clinic with Spring Roo and Gvnix tools.
I created the database with the tables veterinary , owners , pets , dating , all these tables relate to 1 to many , except the table treatments and medicines that relate many to many , these 2 tables above include an intermediate table , called _treatment_med_ which serves to interact between them , use database manager MySQL workbench and MYSQL Server , everything works perfect , from the web application forms I create, update and delete owners , pets , veterinarians , dating , medications but when I try to create more than 2 records on table treatments doing a multiple selection in drugs that have related to the table through treatments a tag jspx .

<field:select field="Med"  id="c_com_clinicaveterinaria_dam_domain_Tratamiento_Med" itemValue="id" items="${medicamentoses}" multiple="true" path="/medicamentoses" z="+hr+pOBWxfr2whYp+joa+OMxAHk="/>  

The application gives me an error without detail of because and I drop by full

I see process from the task manager of Windows with Java (TM) platform SE Binary name (java.exe) soars to more than +1,800 KB (private working space), which makes the web application fall .

Problem in this part of code in the AspectJ class for persistence of the Gvnix with the name.

privileged aspect TratamientoBatchService_Roo_GvNIXJpaBatch {

I think that the error is here.

@Transactional
public void TratamientoBatchService.create(List<Tratamiento> tratamientoes) {
for( Tratamiento tratamiento : tratamientoes) {
    tratamiento.persist();
}
}  

This is error showing me the IntelliJ IDE console:

Stacktrace:] with root cause java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
at java.lang.StringBuffer.append(StringBuffer.java:272)
at org.apache.commons.lang3.builder.ToStringStyle.appendFieldSeparator(ToStringStyle.java:1503)
at org.apache.commons.lang3.builder.ToStringStyle.appendFieldEnd(ToStringStyle.java:1526)
at org.apache.commons.lang3.builder.ToStringStyle.append(ToStringStyle.java:439)
at org.apache.commons.lang3.builder.ToStringBuilder.append(ToStringBuilder.java:848)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:522)  
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:683)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:282) 
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:145) 
at com.clinicaveterinaria.dam.domain.Citas_Roo_ToString.ajc$interMethod$com_clinicaveterinaria_dam_domain_Citas_Roo_ToString$com_clinicaveterinaria_dam_domain_Citas$toString(Citas_Roo_ToString.aj:13)
at com.clinicaveterinaria.dam.domain.Citas.toString(Citas.java:1)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuffer.append(StringBuffer.java:265)
at org.apache.commons.lang3.builder.ToStringStyle.appendDetail(ToStringStyle.java:586)
at org.apache.commons.lang3.builder.ToStringStyle.appendInternal(ToStringStyle.java:550)
at org.apache.commons.lang3.builder.ToStringStyle.append(ToStringStyle.java:436)
at org.apache.commons.lang3.builder.ToStringBuilder.append(ToStringBuilder.java:848)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:522)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:683)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:282)
at org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:145)
at com.clinicaveterinaria.dam.domain.Tratamiento_Roo_ToString.ajc$interMethod$com_clinicaveterinaria_dam_domain_Tratamiento_Roo_ToString$com_clinicaveterinaria_dam_domain_Tratamiento$toString(Tratamiento_Roo_ToString.aj:13)
at com.clinicaveterinaria.dam.domain.Tratamiento.toString(Tratamiento.java:1)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at java.util.AbstractCollection.toString(AbstractCollection.java:462)
at org.hibernate.collection.internal.PersistentSet.toString(PersistentSet.java:317)
at java.lang.String.valueOf(String.java:2994)  

I've tried to configure the Maven server from the IDE IntelliJ IDEA to increase the amount of memory that can withstand through "- Xmx512m - XX:MaxPermSize = 128 m" but the problem cannot be solved.

This is my class Java : Tratamiento.java

package com.clinicaveterinaria.dam.domain;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class Tratamiento {

/**
 */
@NotNull
@Size(min = 5, max = 100)
private String Codigo;
/**
 */
@Size(min = 3, max = 250)
private String AnalisisClinicos;

/**
 */
@Size(min = 3, max = 250)
private String Medicamentos;

/**
 */
private double Coste;

/**
 */
@Size(min = 3, max = 250)
private String Diagnostico;

/**
 */
@Size(min = 3, max = 250)
private String MotivoIngreso;

/**
 */
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
private Date FechaComienzoTratamiento;

/**
 */
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
private Date FechaFinTratamiento;

/**
 */
@ManyToOne
private Citas citas;

/**
 */
@ManyToMany(cascade = CascadeType.ALL)
private Set<Medicamentos> Med = new HashSet<Medicamentos>();


public static List<Tratamiento> findTratamientoXDueño(int idUsr) {
    if (idUsr <= 0 /*mas comprobaciones*/) return null;
    Query query = entityManager().createNativeQuery(
            " SELECT t.* FROM tratamiento t " +
                    " INNER JOIN citas c ON c.id = t.citas " +
                    " INNER JOIN mascota m ON m.id = c.mascotas " +
                    " WHERE m.duenio = (:idUsr)"
            , Tratamiento.class).setParameter("idUsr", idUsr);
    return query.getResultList();
}

public static List<Tratamiento> findTratamientoXVeterinario(int idUsr) {
    if (idUsr <= 0 /*mas comprobaciones*/) return null;
    Query query = entityManager().createNativeQuery(
            " SELECT t.* FROM tratamiento t " +
                    " INNER JOIN citas c ON c.id = t.citas " +
                    " WHERE c.veterinarios = (:idUsr)"
            , Tratamiento.class).setParameter("idUsr", idUsr);
    return query.getResultList();
}
}

Thank you by the help , i am doing the final course project.
I am using MVC (Model–view–controller) .
Sorry , my english is very bad.

The solution is override the method toString .

package com.clinicaveterinaria.dam.domain;

import com.clinicaveterinaria.dam.domain.Tratamiento;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

privileged aspect Tratamiento_Roo_ToString {
public String Tratamiento.toString() {
return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}    
}

New method toString.

 package com.clinicaveterinaria.dam.domain;

import com.clinicaveterinaria.dam.domain.Tratamiento;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

privileged aspect Tratamiento_Roo_ToString {

public String Tratamiento.toString() {
return "";
  }
}

Now the app web doesn´t fall

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM