Перегрузка сервера Веб приложений

Привет.
Я создал Веб приложение, чтобы управлять о ветеринарной клинике с программными средствами Спринг Ру и Gvnix, создал базу данных с подмостками ветеринары, владельцы, амулеты, встречи, все эти подмостки связаны многим от 1 между ними, кроме таблица обработки и лекарства, которые связаны многим многих, между этими 2 ранее упомянутыми подмостками есть промежуточная так называемая таблица tratamiento_med, которая служит для того, чтобы быть связанным между ними, как администратор базы данных я использую MySQL workbench, и как сервер MYSQL Server все я функционирует хорошо, с формуляров Веб приложения я могу создавать, обновлять и удалять владельцы, амулеты, ветеринары, встречи, лекарства, но когда я пробую создавать более 2 реестров на таблице обработки делая многообразный выбор в лекарствах, у которого есть связано с таблицей обработки посредством этикетки 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="/>

Приложение дает мне ошибку без детали, потому что и он я падает полностью.

  • Я сосредотачиваюсь на процессах и вижу, что во время создания новых реестров в промежуточной таблице tratamiento_med, процесс Администратора заданий Windows с именем Java (TM) Plataform SE Binary (java.exe) взрывается в больше +1.800KB (частное рабочее место), что делает, что падало Веб приложение.

В котором проблема укореняется в этой части кода класса AspectJ настойчивости Gvnix с именем

privileged aspect TratamientoBatchService_Roo_GvNIXJpaBatch {

Точно в этой части кода:

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

Ошибка, которую он показывает мне из-за консоли IDE IntelliJ, - эта:

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)

Я попытался конфигурировать сервер Maven с IDE IntelliJ IDEA, чтобы увеличивать количество памяти, которую он может выносить посредством "-Xmx512m-XX:MaxPermSize=128m", я установил JDK еще 6, 7, 8 и много вещей, ничто не функционирует, я нуждаюсь в том, чтобы узнать это, потому что он для проекта конца градуса.

Я не уверен, но думаю, что решение состояло бы в том, чтобы создавать вид BufferBuilder, который загружал бы понемногу объекты в виртуальной машине java, но не имею он ни разрабатывает как делать это или что-то похожее.

Спасибо за ваше внимание.

2
задан 05.06.2016, 02:23
2 ответа

Привет.
Она soluciГіn - та, которую мне дал Luiggi Мендоса. TenГ, - в который sobrescribir метод 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);
   }    
}

И определять mГ©todo, таким образом.

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 "";
      }
   }

Большое спасибо из-за нее soluciГіn. Я могу оставаться с проектом.

1
ответ дан 24.11.2019, 14:14
  • 1
    soluci и # 243; n не - правильный: следующий раз, что ты загрузил консоль Roo этот файл возвращаться и # 225; чтобы изменять. Способ это делать в Спринг Ру - определяя м и # 233; совсем внутри файла .java, схвати и # 237; Roo обнаруживает, что уже определился м и # 233; совсем и он вновь не производит это. В заголовке файлов .aj // WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO. // You may push code into the target .java compilation unit if you wish to edit any member(s). – jmvivo 06.06.2016, 11:02
  • 2
    Большое спасибо из-за комментария, прямо сейчас я это упорядочиваю, как ты прокомментировал мне, я не заметил эту деталь. – Sin Nombre 06.06.2016, 12:54

Изменяя переменные, чтобы увеличивать heap size твоего IDE он не подразумевал бы никакого изменения.

Проверяя твою ошибку:

java.lang. OutOfMemoryError: Java heap space at java.util. Arrays.copyOf (Arrays.java:3332)

В каком-то месте ты используешь один bufferedReader.readLine() читая какой-то пустой файл.

Другая общая проблема состоит в том, чтобы создавать многообразные договоренности, я увидел обычно, что в loop они реализуют копию или создания arrays.

В действительности проблема состоит в том, что ты поселяешь больше памяти разрешенной, по этой причине OutOfMemoryError.

0
ответ дан 24.11.2019, 14:14

Теги

Похожие вопросы