Est-il possible d’exécuter un serveur d’applications Java moyen, par exemple serveur jboss ou glassfish sur Raspberry Pi? Des limites? Quelqu'un at-il une expérience dans le développement Java pour Raspberry Pi?
Au moins toute machine virtuelle Java appropriée pour RPi sera Nice.
C'est tout à fait possible, mais cela devrait mieux fonctionner avec les versions plus récentes disposant de plus de mémoire (par exemple, la version de 512 Mo du Pi). En décembre 2012, Oracle a publié un Developer Preview de Java SE 8 pour ARM . Le billet de blog avec l'annonce contient des liens vers un certain nombre de tutoriels qui devraient vous aider à utiliser Java SE ou JavaFX, en fonction de la fantaisie de vos interfaces.
Si vous êtes préoccupé par les performances de JavaFX sur le Raspberry Pi, consultez le blog "JavaFX sur Raspberry Pi" , qui contient des informations sur les performances de JavaFX, en le comparant à des applications natives.
Update: teste les résultats après avoir exécuté Tomcat 7 avec Java 8 sur le Pi
Après avoir obtenu la version 512 Mo du Pi (MODELL B), j’ai installé Java 8 et Tomcat 7.0 sans aucun problème. Les exemples Tomcat fonctionnaient bien et j'ai pu utiliser l'application de gestion Tomcat sans aucun problème.
Avec 64 Mo de RAM utilisés pour la carte graphique, il me restait 291 Mo de mémoire libre (avec sshd en cours d'exécution):
pi@raspberrypi ~/ $ free -m
total used free shared buffers cached
Mem: 438 146 291 0 10 74
-/+ buffers/cache: 60 377
Swap: 99 0 99
pmap
a signalé un total de 192 Mo utilisé par le processus Tomcat.
Raspberry Pi ne dispose que de 185 Mo pour l’ensemble de la machine virtuelle. (après le démarrage, avec 16 Mo pour le traitement vidéo).
Ensuite, vous devez utiliser des options de mémoire agressives et précises (-Xmx120M -XX:MaxPermSize=55M -XX:ReservedCodeCacheSize=4M -Djava.awt.headless=true
)
J'ai fait une application basée sur Jetty, Spring 3 et Hibernate/JPA. Juste après le déploiement, il contenait environ 15 Mo d'espace disque et 32 Mo d'espace disque (à l'aide de l'analyse de mémoire JProfiler).
Chaque classe chargée est une mémoire permanente perdue, car l’espace PermGen ne peut pas être nettoyé. Beaucoup de classes ne sont chargées que pour le support d'initialisation, mais resteront chargées pour toujours. Peut-être que des tweeks consomment moins d’espace PermGen pour chaque composant.
Vous pouvez en effet. Il y a un blog de quelqu'un qui exécute JBoss EAP (essentiellement JBoss AS 7) sur un Raspberry Pi.
J'utilise TJWS sur Raspberry Pi sous JRE 1.7, cela fonctionne incroyablement vite et sans problèmes de mémoire.
À l'heure actuelle, une machine virtuelle Java sur le pi est possible , mais une édition Java SE est difficile à trouver. Il y en a peut-être un pour ARM d'Oracle, mais je ne l'ai pas essayé (mon pi est toujours en route) et si ma mémoire est bonne, c'est derrière un mur.
Une autre limitation pour le pi est la RAM disponible; des applications comme jboss et glassfish vont vouloir plus RAM que ne le fournit le pi, sauf dans des déploiements très contraignants.
Arun Gupta a écrit quelques articles sur l'exécution de JBoss Wildfly sur Raspberry Pi.
Tomcat 7 tourne sous openjdk avec des bases de données SQLite. Le traitement est correct à environ 25% de la vitesse de mon ordinateur portable, mais l’ouverture de pages JSP prend 10-15 secondes. Je ne sais pas encore pourquoi.