2015-03-02 13 views
5

Thymeleaf ile Spring Boot 1.2.2 kullanıyorum. Sorunum, çok sayıda Öğeyi (bazı etiketler, bir onay kutusu) uzun bir liste halinde göndermeyi deniyorum; (Ben küçük listeleri test ve işe yaradı.)Çok fazla (256'dan fazla) değerle form gönderemiyor

Önce iskelesi kullanılan ancak şeklinde bir hata var,:

java.lang.IllegalStateException: Form too many keys 
at org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:526) 

Aranan ve bu post gördük. Sonuç olarak, gradle.build ürününe

ekledim, ancak çalışmadı. Sonuç olarak Tomcat'e geçtim ve tekrar başarısız oluyor. Hata iletisi şu şekildedir: yalnızca 256 giriş gerçekleştirebilir gibi görünüyor. Yaklaşık 500 kayıt var. Benim Thymeleaf formda method = "post" set

server.tomcat.max-http-header-size=-1 

(-1 hiçbir sınır olarak): Ben yardımcı olacağını maxhttpheadersize artan düşünce ve benim application.properties bu satırı eklendi. 256 limitini arttırmanın başka bir yolu var mı? Sonuçumu belirtebilmek istemiyorum. Herhangi bir yardım için teşekkürler.

+0

Sadece hızlı bir yorum. Spring Boot 1.3.3 kullanıyorum ve server.tomcat.max-http-header-size = 0 değerini ayarladığımda, konfigürasyonu gerçekten değiştirmiyor. Kod aracılığıyla adım atmak, yani 8192 olan varsayılanı kullanmak anlamına geliyor. Bunu büyük bir 65536 değerine ayarlıyorum ve işe yaradı. –

cevap

7

bu ilkbaharda AutoGrowCollectionLimit ile ilgili olduğunu düşünüyorum, bunu artırmak için controller içerisinde bu kodu dahil etmeye çalışıyoruz:

@InitBinder 
public void initBinder(WebDataBinder binder) { 
    binder.setAutoGrowCollectionLimit(768); 
} 

Kontrol this iplik Bahar forumda, ayrıca resmi belgelerinde here içinde.

+1

Sorunu çözer. – svenhornberg