# wie richtig for,muliert?



## nettchen (13. Aug 2007)

hallo,

mal ne etwas programmierfremde frage die hoffentlich trotzdem beantwortet wird. 

Und zwar habe ich ein java Programm mit geschrieben . Dieses Programm ist ein Client server programm und ich war für den server teil verantwortlich. Nun sitze ich an der schriftlichen Dokumentation der arbeit und komme ins grübeln wegen der Formuliereng.

Kann man das so schreiben?

Als Kommunikationsprotokoll wurde RMI verwnedet und der Server ist ein JBoss server. 

Habe das Gefühl das klingt total doof. Und so ganz stimmt es ja bestimmt auch nicht denn der server ist ja auch ein Java Project , welches mit einem jboss server arbeitet. Oder? 
Kann jetzt leider nicht den anderen Entwickler fragen, weil der im Urlaub ist und hoffe ihr könnt mir helfen.


----------



## schuetzejanett (13. Aug 2007)

Puh also ich denk schon das das server programm ein JBoss ist


----------



## nettchen (13. Aug 2007)

Also ich habe mal eine Methode wie ich auf den server zugreife vielleicht könnt ihr mir ja dann weiterhelfen


```
protected IfFfClient getIf()
	   {
		   if (ffClient == null)
		   {
			   try 
			   {
				   Hashtable<String, String> props = new Hashtable<String, String>();
				   props.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
	   	           props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
		           props.put("java.naming.factory.url.pkgs", "org.jboss.naming");
				   InitialContext ctx = new InitialContext(props);
				   ffClient = (IfFfClient)ctx.lookup("IfFfClientBean/remote");
			   } 
			   catch (Exception ex) 
			   {
				   ex.printStackTrace();
			   }	   
		   }
		   return ffClient;
	   }
```

und jetzt ein login aufruf an den server

```
public LoginResponse login(LoginRequest loginRequest)
	{
		
			LoginResponse loginResponse = getIf().login(loginRequest);
			
		
					return  loginResponse;
	}
```

kann mir jetzt einer weiterhelfen also wie schreibe ich den satz möchte ausdrücken das rmi und jboss verwendet wurde.


----------



## nettchen (13. Aug 2007)

Hat denn keiner ne idee, sitz jetzt schon ne ganze weile darüber und hab keine idee, wie ich es anders formulieren könnte. Hab halt von der serverseite keine ahnung aber denke das mit dem JBoss  sollte schon erwähnt werden oder?


----------



## jPat (13. Aug 2007)

Meiner Meinung nach ist RMI kein Protokol sonder die Schnittstelle zur Kommunikation. In deinem Fall ist wohl das TCP Protokoll gemeint. RMI heißt Remote Method Invokation, also ein Methodenaufruf auf einem entfernten System. 
Zum Jboss:
JBoss ist ein Applicationsserver, der ein J2EE Middleware-Framework 
darstellt. Im "Normalfall"  hast du 2 Jbosse Laufen. EInmal auf dem Client, einmal auf dem Server.


----------



## SlaterB (13. Aug 2007)

Die Kommunikation zwischen Client und Server erfolgt mittels RMI.
Die Server-Komponente ist auf dem ApplicationServer JBoss deployt/ läuft auf.


----------



## nettchen (13. Aug 2007)

Danke für die Hinweise

Warum brauche ich auf dem Client einen JBoss ich habe zwar die erforderlichen bibliotheken eingebunden, aber ich starte den JBoss ja nur einmal und das ist der vom server. Oder läuft da intern och was ab, was ich nicht bedacht habe 
und kann mir einer mal bitte erklären was die Zeilen in der getIF Methode in den von mir geposteten zeile machen. habe die so bekommen. Und wüsste aber schon gern was da so gemacht wird


----------



## jPat (13. Aug 2007)

Es muß nicht sein, daß du 2 Jbosse laufen hast, falls du aber eine JSP-Seite als "Client" hast können es 2 sein ...

Zu deinem Code:

der ffCLient, der zurückgegeben wird ist ein Interface, welches die Verbindung der beiden Rechner, also den RMI-Aufruf darstellt.
In deinem login Beispiel wird das RMI - Interface geholt, dann die Methode login(param) aufgerufen (enfernter Rechner).

Ist ein wenig schwammig, aber evtl. hift es dir ja ...


----------



## nettchen (13. Aug 2007)

also was mein code macht weiß ich was ich so in etwa , also jedenfalls so wie du es beschrieben hast was ich aber nicht weiß sind diese zeilen in der getIf methode.




> if (ffClient == null)
> {
> try
> {
> ...


----------



## jPat (13. Aug 2007)

Es wird eine Hashtable erzeugt ....
InitialContext ist eine Java-Klasse, die du unter javax.naming findest, dort gibt es auch gleich eine komplette beschreibung.

ctx.lookup() holt dir dein RMI- Interface, die Klasse ist im Server unter IfFfClientBean/remote registriert in der RMI-Registry. 

Die Hashtable dient zur initialisierung des lookups. Diese Einstellungen werden vom Administrator voreingestellt.


----------



## nettchen (13. Aug 2007)

Ok danke


----------

