OOP Java Klassen Microedition vs. Java 2 Standard Edition

MrX

Mitglied
Hallo,

da ich momentan ein paar Klassen habe, die Abhängigkeiten zur Java Microedition haben und ich diese gerne in einem anderen Zusammenhang, also ohne Abhängigkeiten zur J2ME, weiterverwenden möchte, frage ich mich, ob es in der J2SE entsprechende "Klassen-Pendants" zur MicroEdition gibt, bzw. ob es Best-Practhices gibt, wie man am Besten vorgeht, um so ein Problem zu lösen.

Konkret geht es um die Klassen:

javax.microedition.io.Connector;
javax.microedition.io.HttpConnection;

In der API der J2SE gibt es diese Klassen unter gleichem Namen so nicht, allerdings vermute ich, dass solche häufig verwendete Funktionalität irgendwie im J2SE abgebildet sein muss. Wie geht man also am Besten vor?

Danke für eure Hilfe!
 
Ich würde die Abhängigkeiten durch eigene Klassen abstrahieren, ein gemeinsames Interface anbieten und jeweils Implementierungen für J2SE und JME schreiben. Dann bleibt Dein eigentlicher Code frei von den JME Sachen.
 
In Java hast du Sockets. Und wenn ich mit HTTP arbeite, verwende ich meist den Apache HTTP Client (Apache HttpComponents). Was willst du errechen? Was soll das Programm machen?

Hi,
im Wesentlichen wird eine Verbindung zu einer URL hergestellt, um dann auf dem Connection-Objekt Operationen aufzurufen. Letztendlich wird eine Zeichenkette als String übermittelt (über den outputstream der connection).

Hier der Code zum Verbindungsaufbau und zur Konfiguration der Connection:

Java:
        HttpConnection connection = (HttpConnection) Connector.open(URL_TO_OPEN, Connector.READ_WRITE);

        if (connection == null) {
            throw new RuntimeException("Konnte keine Verbindung zum Server aufbauen");
        }
        
        connection.setRequestMethod(HttpConnection.POST);
        connection.setRequestProperty("Accept", "*/*");
        connection.setRequestProperty("User-Agent", "Mozilla/3.0 (compatible)");
        connection.setRequestProperty("Content-Encoding", "wr-cs");
        connection.setRequestProperty("Content-Type", "text/plain");
 
das müsste fast äquivalent umzustezen sein mit

Java:
URL weburl = new URL(sitestring);
		URLConnection urlc = weburl.openConnection();
		urlc.setConnectTimeout(30000);
		urlc.addRequestProperty("User-Agent", "Mozilla/1337.0 (compatible)");
		InputStream lin = urlc.getInputStream();
		Reader is = new InputStreamReader(lin ,encoding);
		
		BufferedReader in2 = new BufferedReader( is );
		StringBuffer builder = new StringBuffer();
		for ( String s; ( s = in2.readLine() ) != null; ){
			builder.append(s);
			builder.append("\n");
			Thread.yield();
		}
		in2.close();
		is.close();
		lin.close();
		sitecode = builder.toString();

evtl noch vor dem lesen mit einem Writer post daten übertragen
 
javax.microedition.io.HttpConnection sollte *mit einigen unterschieden in der konkreten implementierung* dem hier entsprechen : java.net.HttpURLConnection

was genau Connector sein soll weis ich nicht ... aber vermutlich ne wraper-klasse für irgend n socket-gedöns ...
 

Zurück
Oben