# Sind EJB Komponenten auch mit Java Swing nutzbar?



## DennisXX (18. Jan 2011)

Oder können die EJBs ausschließlich in einer Webarchitektur genutzt werden (z.B. mit Java Servlets, JSP oder JSF)? Oder ist es unabhängig davon, wie genau die Anwendungsschicht gestaltet ist? Könnte bspw. auch PHP mit EJB Koponenten in einer J2EE Architektur kommunizieren?

Kann mir das vielleicht jemand erläutern?

mfg


----------



## The_S (19. Jan 2011)

EJBs können auch von Swing genutzt werden. Es müssen im Swing-Client lediglich die benötigten EJB-Libs eingebunden werden. Für programmiersprachenübergreifende Kommunikation bieten sich eher WebServices an.


----------



## ARadauer (19. Jan 2011)

> Es müssen im Swing-Client lediglich die benötigten EJB-Libs eingebunden werden


Ich denke die Frage ist eher: Wie?

Man findet öfter Beispiele wo jndi benutzt wird. vielleicht hilft dir das Habs aber selber noch nie gemacht..


----------



## DennisXX (19. Jan 2011)

Können denn andere Programmiersprache wie C# oder PHP auch auf EJB zugreifen oder kann man auch diese nur über eine Java Oberflähce / Java Client zugreifen?

mfg


----------



## mvitz (19. Jan 2011)

Nein EJB ist eine Javatechnik und als solche auch nur aus Java aus (evtl. geht es auch mit anderen JVM Aliens) genutzt werden.

Für andere Sprachen sollte man über z.B. Webservices (SOAP, REST) arbeiten.


----------



## DennisXX (20. Jan 2011)

Ok vielen Dank !

Da ich auf diesem Gebiet noch recht neu bin, deshlab nochmal eine Zusammenfassung von mir (so habe ich es jedenfalls jetzt verstanden):

1. EJB bzw. Java J2EE solllen und könnne nur in Kombination mit Java als GUI und Fachlogik mit dem serverseitigen Konzept bzw. serverseitigen Komponten EJB umgehen.

2. Wenn ich PHP, C# oder C++ als Gui und Fachlogik einsetzen will, dann sollte ich lieber die Webservice Technologien SOAP und REST als serverseitige Komponenten verwenden. Es ist auch nicht möglich, mit PHP, C# oder C++ das EJB Konzept überhaupt zu nutzen !

Kann man das jetzt so kurzes und richtiges Resümee festhalten oder ist es so fachlich nicht korrekt?

mfg


----------



## JohannisderKaeufer (20. Jan 2011)

Ich würde nein sagen.

EJB's laufen in einem EJB-Container.
Der EJB-Container ist oft ein Bestandteil eines Application-Servers. Eigenständige EJB-Container die ohne Applicationserver laufen gibt es eventuell, ich habe damit aber noch nichts am Hut gehabt.

Die Kommunikation zwischen Client (Java) und Server (EJB-Container) kann durch jndi/RMI geschehen.

Eine EJB kann, sofern es sich um eine Stateless Session Bean handelt, auch mit der Annotation @WebService versehen werden wodurch sie wie ein WebService verwendet werden kann. Es entfallen aber Möglichkeiten in Richtung Transaktionskontrolle, Zugriffskontrolle.

Du kannst also deine Businesslogik in EJB's abbilden. Javaclients können per RMI mit dem Server kommunizieren. Andere Clients können auf dieselbe EJB per WebService zugreifen(@WebService-Annotation nötig).


----------



## DennisXX (20. Jan 2011)

JohannisderKaeufer hat gesagt.:


> Ich würde nein sagen.
> 
> EJB's laufen in einem EJB-Container.
> Der EJB-Container ist oft ein Bestandteil eines Application-Servers. Eigenständige EJB-Container die ohne Applicationserver laufen gibt es eventuell, ich habe damit aber noch nichts am Hut gehabt.
> ...




Tut mir leid, aber in Bezug auf mein zuvor gepostetes Resümee verstehe ich das irgendwie nicht!?


----------



## The_S (21. Jan 2011)

DennisXX hat gesagt.:


> 1. EJB bzw. Java J2EE solllen und könnne nur in Kombination mit Java als GUI und Fachlogik mit dem serverseitigen Konzept bzw. serverseitigen Komponten EJB umgehen.



Java EE und EJB kann man nicht gleichsetzen. Java EE ist das Enterprise Umfeld als Ganzes. EJB ist ein Teil von Java EE. Ansonsten: Ja, wenn EJB, dann auch Java. Für andere Sprachen WebServices (bspw. so wie von Johannes vorgeschlagen).



DennisXX hat gesagt.:


> 2. Wenn ich PHP, C# oder C++ als Gui und Fachlogik einsetzen will, dann sollte ich lieber die Webservice Technologien SOAP und REST als serverseitige Komponenten verwenden. Es ist auch nicht möglich, mit PHP, C# oder C++ das EJB Konzept überhaupt zu nutzen !



Der Java-EJB-Client kommuniziert natürlich auch irgendwie über das Netzwerk mit dem Server, auf dem die EJBs liegen. Dem liegt natürlich ein Protokoll zugrunde. Wenn du eine Lib in einer entsprechenden Programmiersprache findest (oder selbst schreibst), das dieses Protokoll versteht und mit den Rückgabewerten der EJBs klar kommt, dann kannst du EJBs auch von anderen Sprachen aus nutzen. Sowas ist mir aber noch nie untergekommen und ich habe ehrlich gesagt auch nie danach gesucht. Denn für sowas gibt es WebServices  .


----------

