Gudinna Wiki VisaÄndraBifogaVersionerUppdateratSökKarta

J2EE javabön-träsket

J2EE är ett gruppnamn för ett flertal java standarder som underlättar skapandet av distriburerade och/eller centralicerade skalbara java applikationer. Man kan säga så att om man vill skapa ett datorsystem som sträcker sig utanför en enskild dator säg ett bibliotekssystem så kan J2EE standarderna komma till andvändning.

J2EE fungerar såhär i praktiken:
På en server körs en applikationsserver som tillhandahåller det mesta som ingår i J2EE standarderna. Applikationsservern är påsätt och vis en webbserver och kan användas för att tillhandahålla java klienter med java webbstart. Applikationsservern har även möjlighet att köra J2EE program direkt på servern såsom EJB bönor (bönorna kan även implementera SOA tjänster), webbapplikationer skrivna med JSP och AJAX (det vill säga dynamiska hemsidor skrivna i Java istället för tekniker som php eller perl), Enterprise applikationer (EJB bönor, klienter och webbservices ihop-packat till ett lättinstallerat paket).

EJB bönorna är javaklasser som kan ha utökad funktionalitet utanför vad som är möjligt med java klasser som körs under J2SE, excempel på bra utökad funktionalitet är persistent objekts ett lätt sätt att koppla java objekt till information i en sql databas som implementeras med Presistent objects API (visualisera objektorientering där allt som ändras på ett objekt automatiskt lagras undan i en databas utan att man som programmerare behöver tänka på hur det gick till).

Vi har precis installerat en glassfishv2 applikationsserver på Gudinna.com, på den har vi intallerat en rolig Webb applikation med presitent objekts som man kan skapa ändra och ta bort för beskådan här: http://www.gudinna.com:8080/ZooApp


EJB 3.0 bönor knowhow

Då jag själv ofta glömmer hur man mappar en sessionsbönas class så att den kan anropas av en klient så har jag nu noterat det här:
            @Stateless (mappedName = "SessionBean" )
            public class SessionBean implements SessionRemote {

I min klient kan jag sedan anropa bönan såhär:
            //Skapa en förbindelse till applikationsservern på valfri host och port genom att specificera properties
            Properties p = new Properties();
            p.put("org.omg.CORBA.ORBInitialHost","localhost");
            p.put("org.omg.CORBA.ORBInitialPort","3700");
            InitialContext ic = new InitialContext(p);

            //Skapa ett objekt med bönans publika interface och hitta bönan med det mappade namnet
            SessionRemote bean = (SessionRemote) ic.lookup("SessionBean");

            //Använd bönan!
            int i = bean.getRandom();

Koppla J2SE client applikationer till EJB på J2EE applikationsservrar

https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB - hur man kopplar ett vanligt J2SE program till en J2EE applikationsböna som säg körs under glassfish.
http://blogs.sun.com/dadelhardt/entry/standalone_iiop_clients_with_glassfish
http://forums.java.net/jive/thread.jspa?threadID=37659&tstart=0 - med SSL kryptering
http://forums.java.net/jive/thread.jspa?messageID=217837 - glassfish bakom NAT problem! med bra svar!

Några saker att inte glömma är att man måste inkludera en del klasser med klienten för att det hela ska fungera.

EJB bönor finns i flera olika smaker!

https://glassfish.dev.java.net/javaee5/ejb/EJB30.html -excempel på J2EE session och message bönor.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40ff8a3d-065a-2910-2f84-a222e03d1f43 - excempel på entity bönor, alltså hur funkar java Presistence API 1.0

http://java.sun.com/javaee/5/docs/tutorial/doc/?wp406141&JavaEETutorialPartFour.html#wp996871 - kryptiska J2EE tutorials från sun

J2EE Applikationsservrar i olika smaker

Olika applikationsservrar stödjer olika delar av alla standarder som ingår i J2EE. Här kan man se skillnaderna i två paketeringar av glassfish och vad som skiljer dom åt.
https://glassfish.dev.java.net/public/comparing_v2_and_v3.html


För att koppla databaser som mysql och derby till glassfish kan följande trix vara nödvändiga under debian:


http://www.huihoo.org/jfox/ - en liten och snabb applikationsserver från china
http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/WebHome

J2EE Design patterns

Design patterns är bra sätt att lära sig vilka sätt att applicera J2EE som fungerar i praktiken. Många designpatterns försöker visa sätt man kan skapa system som klarar tidens krav som omdesign genom att visa på smarta sätt att avkoppla beroenden mellan delar i systemet.

Nackdelen med att applicera design patterns är givetvis att alla designpatterns löser design problemen genom att lägga på abstraktionslager vilket kan försämra prestandan och kan medföra överarbetad kod. Men observera då man väljer rätt design pattern till sitt problem möjligörs ökad skalbarhet vilket väger upp den förlorade pestandan.

http://www.theserverside.com/patterns/index.tss
http://java.sun.com/developer/technicalArticles/J2EE/patterns/

AJAX för J2EE webb byggaren


Färdiga J2EE applikationer att starta på en applikationsserver



Referens till aktuell sida


Frivillig gåva till stöd för driften av Gudinna Wiki :