Archive for April, 2014
SizeLimitExceededException: the request was rejected because its size (…) exceeds the configured maximum
Stacktrace
On deploying a WAR in Tomcat:
org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (128938160) exceeds the configured maximum (52428800)
Quick fix
Edit the file $CATALINA_HOME/webapps/manager/WEB-INF/web.xml
Replace the block
<multipart-config> <!-- 50MB max --> <max-file-size>52428800</max-file-size> <max-request-size>52428800</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config>
with:
<multipart-config> <!-- 200 MB max --> <max-file-size>209715200</max-file-size> <max-request-size>209715200</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config>
Mount a shared drive with VirtualBox
Case
You have to share some content between the host (eg: Linux Mint) and the resident (eg: Windows 7) systems, with Virtual Box.
Solution
- In the resident system, go to Virtual Box, then:
Machine
>Settings
> SharedFolders
> on the right:Add
> checkautomount
andpermanent
, browse to the folder, let’s sayD:\sharedFolder
- Launch the VM.
- Execute a terminal in host system:
- Grant rights of group
vboxsf
to usermint
:
sudo gpasswd -a mint vboxsf
- Create a “local” folder:
mkdir ~/sharedFolder
- Mount the folder
sharedFolder
on/home/
:
sudo mount -t vboxsf -o uid=1000,gid=1000 sharedFolder ~/sharedFolder
Conférence Devoxx: « 42 IntelliJ IDEA tips in 45 minutes »
JetBrains, le studio russe éditeur de notre IDE préféré IntelliJ IDEA, était présent en force cette année à Devoxx. Outre un stand où il était possible de discuter avec deux développeurs de l’IDE, JetBrains a animé deux conférences.
A vrai dire, j’étais un peu réticent à l’idée d’assister à la conférence de Hadi Hariri (@hhariri, blog): une conférence au titre similaire l’année dernière m’avait laissé sur ma faim, m’apprenant peu de chose. Le compère de Hadi m’a convaincu de faire l’effort. Eh bien je n’ai pas été déçu.
Hadi a présenté plusieurs dizaines de tips et raccourcis clavier. En voici quelques uns que j’ai appris durant la conférence:
- tout le monde connait le classique
Ctrl
–N
ouvrant une classe. L’astuce consiste, avecCtrl
–N
(et de manière similaire avecCtrl
–Shift
–N
) à rajouter “:<numéro de ligne>” en suffixe à la classe à ouvrir : celle-ci s’ouvrira au numéro de ligne indiqué, par exemple:Ctrl
–N
>CHM:12
ouvrira ConcurrentHashMap en ligne 12. - Désactiver la navigation bar (View > Navigation Bar). Cela permet, via un
Ctrl-Home
, d’afficher à tout instant la barre de navigation en restant dans la fenêtre d’édition. Ctrl-Shift-E
permet de restreindre l’application deCtrl-E
aux fichier récemment édités.Ctrl-Shift-F7
permet, dans le cas général, de mettre en surbrillance les occurrences d’un champ, d’une variable ou d’une méthode. En appliquantCtrl-Shift-F7
sur unreturn
ou unthrow
, respectivement tous les points de sortie de la méthode ou de levée d’exception seront surlignés.Shift-F4
permet d’externaliser une fenêtre, c’est-à-dire de la rendre flottante et indépendante du reste de l’IDE- Symétriquement à
Ctrl-W
qui étend la sélection,Ctrl-Shift-W
la réduit Ctrl-Alt-Shift-J
passe l’éditeur en mode multi-caret: ce mode permet d’effectuer des opérations sur plusieurs lignes en même temps, mais pas forcément sur la même colonne. Le mode colonne (Alt-Shift-Insert
) apparait ainsi comme une application restreinte du mode multi-caret.- Dans un fichier HTML, en tapant par exemple
table>tr>td
, IDEA complétera le code en<table><tr><td></td></tr></table>
(toutefois il semblerait que cette fonctionnalité soit liée au plugin Zen-coding). Shift, Shift
: c’est le “raccourci ultime” vers la recherche sur tout ce qui existe dans IDEA
En conclusion, IntelliJ IDEA confirme son statut de Rolls des outils de développement Java, dont la maitrise complète s’acquière par des années de pratique et d’exploration.
Conférence Devoxx: Introduction aux Google Glass
J’ai eu la chance d’assister à l’édition 2014 de Devoxx FR.
La première conférence que j’ai suivie était “Introduction aux Google Glass”, par Alain Régnier (@AltoLabs, +AlainRegnier), dont voici un résumé:
Alain fait partie d’un programme, les Google Glass Explorers, c’est-à-dire les heureux élus qui ont pu se procurer des paires de lunettes Google Glass. Théoriquement, seuls les résidents nord-américains peuvent souscrire au programme ; néanmoins, l’estimation du nombre de Google Glass circulant en France oscille entre 30 et 50 paires.
A mi-chemin entre des lunettes Star Trek et des scouters de Dragon Ball, les Google Glass ressemblent à des lunettes classiques dont l’une des branche est plus épaisse et dont un verre est surmonté d’un prisme et d’une mini-webcam. Le petit bijou de technologie embarque, sous le capot, de nombreux capteurs et connecteurs: visuel, sonore, bluetooth, wifi, et même infrarouge.
Les Google Glass affichent par défaut des informations de quatre types: texte, image, vidéo et une version limitée d’HTML. Elles sont contrôlables de plusieurs façons: à la voix (en lançant le mot magique “OK Glass!”), via un trackpad, une application “web” MyGlassWeb ou enfin une appli Android MyGlassMobile.
En tant qu’outil de développement, un Android Screen Monitor (un simple client ADB) permet d’afficher sur l’écran du PC ce qui est visible par la personne portant les Google Glass: en d’autres termes, le flux de la webcam sur lequel est superposé l’affichage du prisme.
Concernant le développement proprement dit, trois méthodes sont disponibles:
- Mirror API: les Glass communiquent avec un serveur hébergé par Google, qui redirige vers un serveur concret
- GDK: il s’agit d’un kit de développement similaire à celui d’Android
- WearScript: c’est une librairie, non-officielle, permettant de programmer les Glass en JavaScript
Alain a réalisé une démonstration d’utilisation des Glass. Avouons-le: c’est bluffant… En tant que développeur, les perspectives ouvertes par un tel objet connecté sont très enthousiasmantes! Le plus dur va encore être d’attendre que les Glass soient officiellement disponibles dans nos contrées européennes…
(long tweet) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘type=InnoDB’ at line 1
Stacktrace
org.hibernate.tool.hbm2ddl.SchemaExport - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1
Quick fix
In JPA configuration, replace:
datasource.dialect = org.hibernate.dialect.MySQLInnoDBDialect
with:
datasource.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
Actually, Java driver for MySQL 5.5+ is not backward compatible with the SQL dialect MySQLInnoDBDialect
.