Sind EJB Komponenten auch mit Java Swing nutzbar?

DennisXX

Bekanntes Mitglied
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
 
Zuletzt bearbeitet:

The_S

Top Contributor
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.
 

DennisXX

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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
 
J

JohannisderKaeufer

Gast
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).
 
Zuletzt bearbeitet von einem Moderator:

DennisXX

Bekanntes Mitglied
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).


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

The_S

Top Contributor
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).

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 ;) .
 

Ähnliche Java Themen

Neue Themen


Oben