Hi!
Ich stehe vor einem GROßEN Problem...
Nachdem ich mich hier im Forum stark über RMI informiert hab und nun auch schon selbst erfolgreich ein paar Tests abgeschlossen hab, entstand hier schon wieder ein ziemlich großes problem!
Über einen Button in einer View wollte ich den Server starten. Das Problem dabei ist, dass auf den Button nichts reagiert. Absolut garnichts! Wenn ich den Server in einem extra Projekt starte funktioniert alles bestens. Ich kann in den Button auch einfach nur einen System.out.Println-Befehl schreiben und nichts erscheint auf der Konsole
Begreife das nicht!
Wollte jetzt den Server und den Client halt jeweils in einem Thread starten lassen mit
Hier mal der Server-Thread:
Hier der "Inhalt" der View wo der Server aufgerufen werden soll (Client ist noch nicht implementiert):
vielen dank für eure hilfe
mfg
Ich stehe vor einem GROßEN Problem...
Nachdem ich mich hier im Forum stark über RMI informiert hab und nun auch schon selbst erfolgreich ein paar Tests abgeschlossen hab, entstand hier schon wieder ein ziemlich großes problem!
Über einen Button in einer View wollte ich den Server starten. Das Problem dabei ist, dass auf den Button nichts reagiert. Absolut garnichts! Wenn ich den Server in einem extra Projekt starte funktioniert alles bestens. Ich kann in den Button auch einfach nur einen System.out.Println-Befehl schreiben und nichts erscheint auf der Konsole
Begreife das nicht!
Wollte jetzt den Server und den Client halt jeweils in einem Thread starten lassen mit
Code:
server.start();
server.join();
client.start();
client.join();
Hier mal der Server-Thread:
Code:
import java.net.MalformedURLException;
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Server implements Runnable{
@Override
public void run() {
try {
LocateRegistry.createRegistry(Registry.REGISTRY_PORT); //RMI-Port 1099
Registry registry = LocateRegistry.getRegistry();
Remote remote = new ManagerImpl();
Naming.rebind("server", remote);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Server gestartet ...");
}
}
Hier der "Inhalt" der View wo der Server aufgerufen werden soll (Client ist noch nicht implementiert):
Code:
import java.io.File;
import java.io.IOException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import de.hwrberlin.jemm.Datei;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import com.swtdesigner.SWTResourceManager;
public class Browser extends ViewPart {
public static final String ID = "de.hwrberlin.jemm.views.Browser";
private Text text;
private static Tree tree;
private static TreeItem treeItem;
private Text text_1;
public static Label lblStatus;
public Thread server = new Thread(new de.hwrberlin.jemm.net.Server());
public Browser() {
// TODO Auto-generated constructor stub
}
@Override
public void createPartControl(Composite parent) {
parent.setLayout(null);
{
tree = new Tree(parent, SWT.BORDER);
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseDoubleClick(MouseEvent e) {
String aktiv = tree.getSelection()[0].getText();
Integer position = de.hwrberlin.jemm.views.editor.position(aktiv);
Datei dateien = de.hwrberlin.jemm.views.editor.dateioeffnen(position);
File datei = dateien.datei;
try {
de.hwrberlin.jemm.views.editor.oeffnen(datei);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
tree.setBounds(0, 0, 194, 547);
}
{
Composite composite = new Composite(parent, SWT.NONE);
composite.setBounds(0, 548, 194, 121);
composite.setLayout(null);
{
Label lblVerbindenZu = new Label(composite, SWT.NONE);
lblVerbindenZu.setBounds(10, 10, 100, 13);
lblVerbindenZu.setText("Verbinden zu...");
}
{
text = new Text(composite, SWT.BORDER);
text.setBounds(10, 29, 100, 19);
}
{
Button btnConnect = new Button(composite, SWT.NONE);
btnConnect.setBounds(116, 54, 68, 23);
btnConnect.setText("Verbinden");
}
{
Button btnHostSein = new Button(composite, SWT.NONE);
btnHostSein.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
server.start();
try {
server.join();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnHostSein.setBounds(10, 54, 68, 23);
btnHostSein.setText("Hosten");
}
{
text_1 = new Text(composite, SWT.BORDER);
text_1.setBounds(116, 29, 68, 19);
}
{
Label lblPort = new Label(composite, SWT.NONE);
lblPort.setText("Port");
lblPort.setBounds(116, 10, 68, 13);
}
{
lblStatus = new Label(composite, SWT.NONE);
lblStatus.setFont(SWTResourceManager.getFont("Tahoma", 11, SWT.NORMAL));
lblStatus.setBounds(10, 82, 174, 29);
}
}
{
Label label = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
label.setBounds(10, 567, 174, 2);
}
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
public static void hinzufuegen(String name){
treeItem = new TreeItem(tree, SWT.NONE);
treeItem.setText(name);
}
}
vielen dank für eure hilfe
mfg
Zuletzt bearbeitet: