Einstieg in J2EE: Remote auf Bean zugreifen

tomcom

Mitglied
Hallo liebe Commuinity,

ich bin Neueinsteiger bei J2EE und möchte erst einmal die Grundlagen zum Arbeiten mit einem Applicationserver verstehen. Dazu habe ich einen JBoss 7 AS aufgesetzt und entwickle mit Eclipse Statless Session Beans.

Zunächst habe ich ein Tutorial durchgerabeitet, das eine Bean mit dem Klassennamen MyBean hat. Dazu gehören die Interfaces MyBeanLocal und MyBeanRemote , so wie ein allgemeines Interface IMyBean:
Java:
import java.io.Serializable;

public interface IMyBean extends Serializable {    
    public void doSomething();
}
-------------------------------------------------------------
import javax.ejb.Local;
@Local
public interface MyBeanLocal extends IMyBean {}
-------------------------------------------------------------
import javax.eimport javax.ejb.Remote;
@Remote
public interface MyBeanRemote extends IMyBean{}
-------------------------------------------------------------
import javax.ejb.Stateless;

@Stateless  
public class MyBean implements MyBeanLocal, MyBeanRemote {
    private static final long serialVersionUID = 9184424076718418234L;

    public void doSomething() {
        System.out.println("Hello World!");         
    }
}

Das ganze wird an den JBoss übermittelt, indem ich in Eclipse für das Projekt Run as -> Run on Server ausführe.

In der Serverkonsole erscheint daraufhin:
Code:
19:33:31,360 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) Starting deployment of "MyBeansnull"
19:33:31,365 INFO  [org.jboss.as.jpa] (MSC service thread 1-7) added javax.persistence.api dependency to MyBeansnull
19:33:31,372 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-6) JNDI bindings for session bean named MyBean in deployment unit deployment "MyBeansnull" are as follows:

	java:global/MyBeansnull/MyBean!MyBeanLocal
	java:app/MyBeansnull/MyBean!MyBeanLocal
	java:module/MyBean!MyBeanLocal
	java:global/MyBeansnull/MyBean!MyBeanRemote
	java:app/MyBeansnull/MyBean!MyBeanRemote
	java:module/MyBean!MyBeanRemote

19:33:31,395 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "MyBeansnull"

So weit, so gut.
Nun muss ich also nur noch per Client-Programm die Bean nutzen:
Java:
import java.util.Properties;
public class MyBeanClient {
    public static void main(String[] args) {
        try {
            Properties props = new Properties();
            props.setProperty("java.naming.factory.initial","org.jboss.as.naming.InitialContextFactory");
            props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
            props.setProperty("java.naming.provider.url", "127.0.0.1:1099");         
            
            InitialContext ctx = new InitialContext(props);            
            MyBeanRemote bean = (MyBeanRemote) ctx.lookup("MyBean/remote");
            
            bean.doSomething();
        } catch (NamingException e) {
            e.printStackTrace();
        } 
    }
}

Allerdings kommt beim Ausführen folgende Fehlermeldung:
Code:
javax.naming.NameNotFoundException: Name 'MyBean' not found in context ''
	at org.jboss.as.naming.util.NamingUtils.nameNotFoundException(NamingUtils.java:111)
	at org.jboss.as.naming.InMemoryNamingStore$NodeTraversingVisitor.visit(InMemoryNamingStore.java:368)
	at org.jboss.as.naming.InMemoryNamingStore$ContextNode.accept(InMemoryNamingStore.java:307)
	at org.jboss.as.naming.InMemoryNamingStore.lookup(InMemoryNamingStore.java:162)
	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:173)
	at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:47)
	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:209)
	at javax.naming.InitialContext.lookup(InitialContext.java:409)
	at MyBeanClient.main(MyBeanClient.java:13)
Hmm, in der Server-Konsole stand ja unter anderem: java:module/MyBean!MyBeanRemote.
also änderte ich das Programm dementsprechend ab:
Java:
import java.util.Properties;
public class MyBeanClient {
    public static void main(String[] args) {
        try {
            /* .... */
            InitialContext ctx = new InitialContext(props);            
            MyBeanRemote bean = (MyBeanRemote) ctx.lookup("java:module/MyBean!MyBeanRemote");
            /* .... */
        } 
    }
}
Aber es ging wieder nicht :(
Code:
javax.naming.NameNotFoundException: java:module/MyBean!MyBeanRemote
	at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:51)
	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:209)
	at javax.naming.InitialContext.lookup(InitialContext.java:409)
	at MyBeanClient.main(MyBeanClient.java:13)
Auffällig ist auch, das die Bean auf der JBoss-Administrator-Konsole (http://127.0.0.1:9990) unter Manage Deployments zu sehen ist (Warum wird snull angehängt?):
Code:
Name          | Runtime Name   | Enabled
MyBeansnull   | MyBeansnull    |  yes
Aber unter EJB -> Sessionbeans ist keine Bean aufgelistet.


Kann mir jemand weiter helfen, das ich endlich Remote ein Hello World ausgeben kann.

Gruß Thomas
 
Zuletzt bearbeitet von einem Moderator:
S

Sym

Gast
Derzeit gibt es noch einen Bug im JBoss 7 AS Full - ich weiß nicht, ob dieser auch im Web Profile auftritt. Dazu solltest Du mal bei den JBoss Leuten suchen, da gibt es ein paar Bugs zu.

Allerdings sollte es seit letzter Woche die erste Alpha zu 7.1 geben. Vielleicht läuft es damit.
 
S

Sym

Gast
Wenn Du nur ein war (oder auf ein war umstellst) geht auch alles mit dem Web Profile JBoss.
 
S

Sym

Gast
Bist Du Dir sicher? In dem Ticket ist von dem Full App die Rede und nicht vom Web Profile.
 

fastjack

Top Contributor
Im Web-Profil funktioniert der Zugriff von WAR auf Beans, oder EAR nach EAR, wenn alles im JBoss liegt, aber nicht der Zugriff aus einer anderen VM auf die Beans. Ich hatte zuerst auch an einen Bug gedacht (wie viele andere auch).
 

tomcom

Mitglied
Und so schnell wie der startet, verzeiht man Probleme am Anfang und wartet auf die 7.1 Final... :D
Ich habe mir die Berta Version von 7.1 runtergeladen, ähhm Beta meinte ich natürlich.
Mal schauen, ob es damit läuft.
Ansonsten warte ich auf die Final-Version (oder Versuche es mit dem 6er-JbossAS).
Mit der 7.1-Beta-Version hab ich z.Zt. allerdings ein kleines Problem mit der Steuerung über Eclipse/Jbosstools. Aber das ist ein anderes Problem, für das ich auch einen anderen Thread aufmachen werde.

Vielen Dank für alle Antworten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T J2EE Einstieg - Mit was? Allgemeines EE 7
0 Einstieg bei JSP oder gleich EE 6 und JSF Allgemeines EE 5
J Einstieg in Java EE Allgemeines EE 5
c_sidi90 Gute Bücher/Tutorials für Einstieg in JSP/Servlets Allgemeines EE 3
F Einstieg in Java EE - Beispielanwendungen Allgemeines EE 52
T Einstieg JEE: Frage für Frage bis zum Erfolg :-) Allgemeines EE 28
S Hessian starten und Begriffsschwierigkeiten (Einstieg) Allgemeines EE 2
A Fragen zum Einstieg in Java EE Allgemeines EE 11
S Portlet-Einstieg Allgemeines EE 8
G Generelle Java EE Frage zum Einstieg Allgemeines EE 3
M Basis Setup zum Einstieg in JSP ? Allgemeines EE 6
4a61766120617274697374 Managed Server im J2EE Umfeld Allgemeines EE 0
R DotNet für J2EE Programmierer Allgemeines EE 1
BuckRogers Jboss 7** und j2ee 1.7 Allgemeines EE 1
T The server does not support version 3.0 of the J2EE Web module specification. Allgemeines EE 6
M Messwertarchiv unter J2EE Allgemeines EE 4
S J2EE Grundlagen - Kommunikation Allgemeines EE 6
K J2EE Grundlagen - Verständnisfragen Allgemeines EE 2
G J2EE Architektur Allgemeines EE 40
T J2EE, MySQL, Linux, Applikationsverfügbarkeit mangelhaft, Analyse Allgemeines EE 2
ModellbahnerTT Welche J2EE Buch? Allgemeines EE 4
W Daten mit j2ee aus datenbank abfragen Allgemeines EE 8
S J2EE Architektur/Pattern/... Allgemeines EE 11
G Persistenz mit Hibernate oder J2EE? Allgemeines EE 11
T E-Mail in J2EE Plattform Allgemeines EE 6
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
M J2EE beim SCJA Allgemeines EE 4
B J2EE Frage Allgemeines EE 4
R Tutorial für J2EE Allgemeines EE 3
K J2EE Security - A JSF based Login Form Allgemeines EE 7
J Rechnername auf dem eine J2EE läuft Allgemeines EE 10
G Suche Tutorials/Bücher - J2EE Allgemeines EE 5
A Wie werden Template Engines unter J2EE umgesetzt? Allgemeines EE 3
S JSF mit Eclipse J2EE Allgemeines EE 6
G grundlegendes j2ee verständniss Allgemeines EE 6
M Anfängerfragen J2EE Allgemeines EE 13
P Basissystem für J2EE App Allgemeines EE 5
ARadauer aus j2se anwendung auf j2ee elemente zugreifen Allgemeines EE 2
T Probleme beim Einsatz von J2EE / JBoss Allgemeines EE 4
G J2SE vs J2EE Allgemeines EE 4
X J2EE Anfängerfrage ( JSF / EJB 3.0 Tutorial) Allgemeines EE 1
S Anfängerfrage zu J2EE Allgemeines EE 2
B Wozu J2EE ? Allgemeines EE 2
M J2EE Entwicklung mit Eclipse Allgemeines EE 5
M Brauche ich J2EE ? Allgemeines EE 2
E J2EE unter Eclipse Allgemeines EE 6
L jsdk oder j2ee Allgemeines EE 5
K Design einer J2EE applikation? Allgemeines EE 2
G j2ee eclipse bekanntmachen Allgemeines EE 4
G properties file im J2EE Server - wo wird genau gesucht? Allgemeines EE 6
M MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren Allgemeines EE 7
M Wo finde ich den j2ee-source? Allgemeines EE 5
P J2EE Struts - Database connection failed - Hilfe?:( Allgemeines EE 6
P J2EE Struts Allgemeines EE 2
H Schnelleinstieg für J2EE Projekt? Allgemeines EE 5
B J2EE-App mit Netbeans4.1 Allgemeines EE 3
K J2EE WebAnwendung - Umfrage - Planung/Techniken Allgemeines EE 8
G Gute Bücher zu J2EE Allgemeines EE 5
A Kolloquium J2EE / Struts Allgemeines EE 16
S J2EE, Java - Beans, Datenbankzugriff, JSP Allgemeines EE 7
A Probleme mit J2EE und Tomcat Allgemeines EE 7
A Brauche ich J2EE für Beans? Allgemeines EE 9
S Servlets zum laufen bringen mit J2EE Allgemeines EE 3
OnDemand Live logging von Remote Allgemeines EE 1
J EJB / Interface / Class Annotationen / Statless & Stateful / remote & local Allgemeines EE 7
D Remote Aufruf von EJB funktioniert nicht Allgemeines EE 1
FINF_AW_Alex remote Glassfish Library unverträglichkeit Allgemeines EE 0
J SessionBean Remote Allgemeines EE 2
C JMS Remote Client Allgemeines EE 5
byte Remote Lazy Loading mit Spring und Hibernate Allgemeines EE 5
G Remote Referenz nicht freigeben. Allgemeines EE 6

Ähnliche Java Themen

Neue Themen


Oben