Einfache System.out.println-Anwedung mit Weblogic

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine wirklich sehr simple EJB-Applikation gebaut, wo eine main-Methode als Client dient und gar keine Interface zwischen dem Client und dem Server. Eine Bean habe geschrieben, die lediglich System.out.println Hi, ich bin Ratna ausspuckt.

Ich führe diese Applikation unter Eclipse Run As Application.

Den Applikationsserver habe ich entsprechend gestartet, alles fein.

Die Applikation wurde vom ersten Blick erfolgreich ausgeführt, das heißt, in der Konsole sah ich wirklich die Ausgabe vom System.out.println der EJBean. Allerdings dauerte dieses Erfolgserlebnis lediglich eine Sekunde. Danach bekam ich folgende Fehler zu Gesicht:

<17.12.2013 15:43 Uhr MEZ> <Error> <Socket> <BEA-000403> <IOException occurred on socket: Socket[addr=/127.0.0.1,port=53000,localport=7001]

java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen.

java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen

at sun.nio.ch.SocketDispatcher.read0(Native Method)

at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)

at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)

at sun.nio.ch.IOUtil.read(IOUtil.java:197)

at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)

Truncated. see log file for complete stacktrace


Ich habe daraufhin danach gegoogelt, leider konnte ich nicht wirklich was finden, lediglich, dass die Fehlermeldung bzw. dieser Complete Stacktrace bottom up verläuft, also der letzte Prozess, der zu Fehler führt steht ganz zu Anfang.

Vielen Dank für Eure Hilfestellungen.

Viele Grüße aus Rheinland,

Eure Ratna
 

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

vielleicht ist es einfacher, wenn ich den Quellcode bereitstelle:
Code:
public class Main {

	public static void main(String[] args) {
		
		Properties p = new Properties();
		
		p.put(Context.PROVIDER_URL, "t3://localhost:7001");
		p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
		
		try {
			Context ctx = new InitialContext(p);
			
			TheBeanRemote bean = (TheBeanRemote) ctx.lookup("MrBean#com.coolstory.TheBeanRemote");
			
			System.out.println("Main.main(): " + bean.sayHi());
			
		} catch (NamingException e) {
			e.printStackTrace();
		}

	}

}

Das ist also der Code am Frontend(Client).

Der Code vom Bean sieht so aus:

Code:
@Stateless(mappedName = "MrBean")
public class TheBean implements TheBeanRemote {

    /**
     * Default constructor. 
     */
    public TheBean() {
    }

	@Override
	public String sayHi() {
		return "Hi I am Mr Bean";
	}

}

Nach der Ausführung soll ja lediglich folgendes ausgegeben werden:
Main.main(): Hi I am Mr Bean

Wie gesagt, diese Ergebniszeile kommt, aber bleibt nur eine halbe Sekunde in meiner Eclipse-Konsole, danach ist die Fehlermeldung:
Code:
java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
	at sun.nio.ch.SocketDispatcher.read0(Native Method)
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
	at sun.nio.ch.IOUtil.read(IOUtil.java:197)
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)
	at weblogic.socket.NIOSocketMuxer$NIOInputStream.read(NIOSocketMuxer.java:747)
	at weblogic.socket.NIOSocketMuxer$NIOInputStream.read(NIOSocketMuxer.java:733)
	at weblogic.socket.SocketMuxer.readFromSocket(SocketMuxer.java:1017)
	at weblogic.socket.NIOSocketMuxer.readFromSocket(NIOSocketMuxer.java:642)
	at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:951)
	at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:928)
	at weblogic.socket.NIOSocketMuxer.process(NIOSocketMuxer.java:507)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:473)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

Hat jemand eine Idee, woran es liegen kann? Warum bricht der Client(main.java) die Verbindung?

Vielen Dank und viele Grüße aus Rheinland,

Eure Ratna:)