einfachster Servlet-Aufruf klappt nicht

Status
Nicht offen für weitere Antworten.

jollyroger

Bekanntes Mitglied
Hallo zusammen,

ich sehe wahrscheinlich den Wald vor lauter Bäumen nicht mehr......

Ich hab zwei einfachste Servlets, das eine soll lediglich das andere aufrufen und das aufgerufene Servlet soll eine Art "hello world" Nachricht ausgeben..

Dementsprechend einfach sind die Servlets:

Der Empfänger:

Code:
public class TestReceiver extends HttpServlet{
	
	public void service( HttpServletRequest req, HttpServletResponse resp )  {
	
		  System.out.println("receiver: service method!");
		  if (req.getMethod().equals("GET")) {
			  doPost(req, resp);
		  }
		  else if (req.getMethod().equals ("POST")) {
			  doPost(req, resp);
		  }
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response) {			

			System.out.println("Receiver: getting post request!");
			String data = request.getParameter("data");
			System.out.println("data: " + data);

	}
}

Und der Sender:

Code:
public class TestSender extends HttpServlet {
	
	public void service( HttpServletRequest req, HttpServletResponse resp )  {
		
		  if (req.getMethod().equals("GET")) {
			  doPost(req, resp);
		  }
		  else if (req.getMethod().equals ("POST")) {
			  doPost(req, resp);
		  }
	}
	
	
	
		public void doPost(HttpServletRequest request, HttpServletResponse response) {			
		
		try {	
				 
				URL	url = new URL("http://localhost:8180/ft/sfr/test/TestReceiver");
				System.out.println("opening connection to url: " + url.toString());
				// open connection
				HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
				System.out.println("setting connection params...");
				httpConn.setDoOutput(true);
		   	httpConn.setDoInput(true);
				httpConn.setRequestMethod("POST");
				String urlParams = "data=hallloooooooooo";
				System.out.println("url-Parameter: " + urlParams);
				OutputStreamWriter oStreamWriter = new OutputStreamWriter(httpConn.getOutputStream());
			  oStreamWriter.write(urlParams, 0, urlParams.length());
			  oStreamWriter.flush();
			  oStreamWriter.close();			    
				System.out.println("killing http conn");
		        httpConn.disconnect();
			}
		    } catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (ProtocolException e) {
					e.printStackTrace();
			} catch (MalformedURLException e) {
					e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} 

		}
}

Soweit so einfach, das klappt aber unerklärlicherweise nicht.....

Rufe ich das Sender-Servlet auf, sehe ich folgende Ausgabe:

Code:
opening connection to url: [url]http://localhost:8180/ft/sfr/test/TestReceiver[/url]
setting connection params...
url-Parameter: data=hallloooooooooo
killing http conn

Aber das ist ja nur die Ausgabe des Sende-Servlets und nicht des Empfänger-Servlets!

Von dem kriege ich überhaupt keine Ausgabe auf STDOUT.

So, und nun der Punkt wo ich völlig aussteige:

Kopiere ich mir nun aus der Ausgabe des Sende-Servlets die Url die aufgerufen wird, also

Code:
[url]http://localhost:8180/ft/sfr/test/TestReceiver[/url]

und füge die in die Adressleiste meines Browser ein und drücke auf Enter wird das Empfänger-Servlet
aufgerufen und ich sehe folgende Ausgabe auf STDOUT:


Code:
receiver: service method!!!
Receiver: getting request...
data: null

Also die Ausgabe des Empängerservlets.

Genauso klappt die URL mit Parametern:

Code:
[url]http://localhost:8180/ft/sfr/test/TestReceiver?data=halllooooo[/url]

Ausgabe:

Code:
receiver: service method!!!
Receiver: getting request...
data: halllooooo


Ich kann also über die gleiche URL die das Sender-Servlet verwendet direkt über den Browser das Empfänger-Servlet aufrufen,
aber der Aufruf von Seiten Sende-Servlets bewirkt....nichts? Oder verschwindet ins Nirvana oder was auch immer?

Wie kann denn das nun sein?

Sehe ich gerade den Wald vor lauter Bäumen nicht mehr oder was läuft da schief?

Ich sitze jetzt seit 4 oder 5 Stunden daran, und hab einfach keine Ahnung wie das sein kann.....

Danke für jeden Tip!
 

KSG9|sebastian

Top Contributor
Ähm..und wie sieht die web.xml aus?
Du musst
1) Das Servlet in der web.xml registrieren
2) Für das Servlet ein URL-Pattern einstellen
 

jollyroger

Bekanntes Mitglied
Ähm..und wie sieht die web.xml aus?
Du musst
1) Das Servlet in der web.xml registrieren
2) Für das Servlet ein URL-Pattern einstellen

Ne,

das ist schon klar.......... :wink:

Wenn ich das Empfänger-Servlet nicht in der web.xml stehen hätte, könnte ich es auch nicht über den Browser aufrufen...

Das steht in der web.xml:

Code:
<servlet>
  <servlet-name>TestSender</servlet-name>
  <servlet-class>filetransfer.sft.test.TestSender</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>TestSender</servlet-name>
  <url-pattern>/sft/test/TestSender</url-pattern>
</servlet-mapping>

<servlet>
  <servlet-name>TestReceiver</servlet-name>
  <servlet-class>filetransfer.sfr.test.TestReceiver</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>TestReceiver</servlet-name>
  <url-pattern>/sfr/test/TestReceiver</url-pattern>
</servlet-mapping>

Ein anderes - funktionierendes - Servlet, welches in der web.xml definiert ist sieht so aus:

Code:
<servlet>
  <servlet-name>Receiver</servlet-name>
  <servlet-class>filetransfer.sfr.servlet.Receiver</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>Receiver</servlet-name>
  <url-pattern>/sfr/Receiver</url-pattern>
</servlet-mapping>

Dieses wird von einem anderen Servlet mit der URL

Code:
http://localhost:8180/ft/sfr/Receiver

aufgerufen und das funktioniert.

Mein Context-path ist:


Code:
 <Context path="/ft" docBase="/home/jollyroger/workspace/ft/" debug="0" reloadable="true" />

Ich sehe keinen Fehler soweit?

Nochmal:

Mein Testsender versucht über:

Code:
http://localhost:8180/ft/sfr/test/TestReceiver

den Test-Empfänger aufzurufen, was nicht klappt (siehe Eröffnungspost)

Mein funktionierender Sender ruft den ebenfalls funktionierenden Empfänger mit

Code:
http://localhost:8180/ft/sfr/Receiver

auf und das klappt.

Ich lese es mir jetzt zum x-ten Mal durch und ich sehe nichts was da falsch ist..... :(
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
D HTTP Aufruf einer Methode aus einem Servlet heraus Allgemeine Java-Themen 0
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
E Die if-Anweisung in einer Java Bean bzw. in einem Servlet? Allgemeine Java-Themen 8
A Registrierungs-servlet Allgemeine Java-Themen 0
S Servlet, per URLConnection Mit String Http Parameter mitsenden Allgemeine Java-Themen 3
F Benachrichtigungs-System Webapp Java Servlet Allgemeine Java-Themen 10
B Userdaten in Hashmap speichern - Servlet Allgemeine Java-Themen 6
S Bildaufbau durch Servlet -> Exception Allgemeine Java-Themen 11
N Servlet welches PDF erzeugt Allgemeine Java-Themen 10
U Servlet in Webseite einbinden Allgemeine Java-Themen 1
S Java Servlet Cache + Cache-Management Allgemeine Java-Themen 14
J package javax.servlet does not exist Allgemeine Java-Themen 5
P Servlet Eingaben sicher machen Allgemeine Java-Themen 5
P DocumentBuilder servlet Allgemeine Java-Themen 9
V [solved]Von Java Prog über ein JSP/Servlet auf DB zugreifen Allgemeine Java-Themen 3
M Applet Servlet Kommunikation ein Problem bei externem Server Allgemeine Java-Themen 3
G Servlet über apache Tomcat ansprechen Allgemeine Java-Themen 6
E Servlet wartet auf Thread Allgemeine Java-Themen 2
N Hardware-Webserver mit Java (JSP/Servlet)-Unterstützung? Allgemeine Java-Themen 8
K HTML-Formular findet Servlet nicht Allgemeine Java-Themen 2
K Servlet im Browser aufrufen Allgemeine Java-Themen 3
I Servlet von einem Swing Based GUI aufrufen Allgemeine Java-Themen 5
G Servlet Register/Login-Prozedur Allgemeine Java-Themen 9
T URL in Servlet auslesen? Allgemeine Java-Themen 4
A Was ist bei einem Servlet beim Client notwendig? Allgemeine Java-Themen 22
T Profiler für Servlet Allgemeine Java-Themen 2
T Servlet und JFrame Allgemeine Java-Themen 2
L E-Mail Auswertung mit Servlet (Excel) Allgemeine Java-Themen 3
L String ausgeben in Servlet Allgemeine Java-Themen 2
P Filestream von HTML-Form zu Servlet Allgemeine Java-Themen 6
B Suche Webhoster mit Javaunterstützung (JSP, Servlet) Allgemeine Java-Themen 10
P Was ist der Unterschied zwischen JSP und Servlet ? Allgemeine Java-Themen 4
M Wo krieg' ich die Datei Servlet.jar Allgemeine Java-Themen 3
R Servlet Probleme im Internet Explorer (per LAN) Allgemeine Java-Themen 4
G Servlet - "Client immer am neuesten Stand" Allgemeine Java-Themen 2
N Diagramm beschriften, Servlet Allgemeine Java-Themen 5
R suche servlet.jar Allgemeine Java-Themen 2
P Servlet, Deserialisieren, StreamCorruptedException Allgemeine Java-Themen 9
R Servlet, das File zurückliefert Allgemeine Java-Themen 4
1 Applet soll PDF von Servlet empfangen Allgemeine Java-Themen 3
E Servlet-Beispiel gesucht Allgemeine Java-Themen 3
H Variablenübergabe von Servlet zu JSP Allgemeine Java-Themen 18
M Mit HTML in Servlet Daten austauschen Allgemeine Java-Themen 3
H Servlet/Applet Kommunikation Allgemeine Java-Themen 2
M Servlet --> Berechnung --> Timeout vom Proxy oder IE!? Allgemeine Java-Themen 7
A Formular POST übergabe an Servlet Allgemeine Java-Themen 4
T JNA, Aufruf der Funktionen einer dll Allgemeine Java-Themen 5
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
berserkerdq2 Wie mache ich den rekursiven Aufruf in IJVM Allgemeine Java-Themen 3
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
P CMD Aufruf mit Admin-Rechte Allgemeine Java-Themen 2
cool_brivk24 Klassen Klassen Aufruf Fehlgeschlagen Allgemeine Java-Themen 14
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Genson - zirkulärer Aufruf Allgemeine Java-Themen 1
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
B Kodierung von String -> URL aufruf Allgemeine Java-Themen 2
G Rekursiver Aufruf von Waagengewichten Allgemeine Java-Themen 2
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
M datei aufruf prüfen Allgemeine Java-Themen 9
D JNI DLL Aufruf Allgemeine Java-Themen 32
M datei aufruf datum auslesen Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
F Parameter im Link /jar-Aufruf Allgemeine Java-Themen 12
Z Socket Aufruf einer Klasse in einer anderen Klasse Allgemeine Java-Themen 6
A JNI: Unerklärlicher Crash beim Aufruf von CallVoidMethod Allgemeine Java-Themen 9
S Variablen bei Aufruf zurücksetzen Allgemeine Java-Themen 4
J yield() Aufruf in einer synchronized-Methode Allgemeine Java-Themen 13
R JAR aus Batchdatei Aufruf Allgemeine Java-Themen 4
Kr0e Sichtbarkeitsregeln nach Executor-Aufruf Allgemeine Java-Themen 5
F rekursiver Aufruf (Sudoku und Guice) Allgemeine Java-Themen 19
B Cipher.getInstance Aufruf sehr langsam Allgemeine Java-Themen 2
M Aufruf von Unix-Shell in Java Allgemeine Java-Themen 5
G Aufruf einer Methode in IStatus exex Allgemeine Java-Themen 4
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
C Netbeans - Aufruf-Reihenfolge Allgemeine Java-Themen 5
Nicer Problem mit Link aufruf Allgemeine Java-Themen 6
M Cobol-Aufruf aus Java Allgemeine Java-Themen 6
C Aufruf einer Methode einer anderen Klasse Allgemeine Java-Themen 14
T Lib/Framework zum Automatischen Aufruf von Methoden Allgemeine Java-Themen 2
R Ableiten - Methoden aufruf bei abgeleiteten Klassen Allgemeine Java-Themen 4
G DAOFactorry aufruf Allgemeine Java-Themen 10
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
V Aufruf von Klasse mit Runnable versteh ich nicht Allgemeine Java-Themen 8
S Übergabe / Aufruf einer beliebigen Methode in einer anderen Allgemeine Java-Themen 9
R toString() methode überschreiben mit rekursivem aufruf. Allgemeine Java-Themen 8
N Main-Klasse wird beim Aufruf des JARs nicht gefunden Allgemeine Java-Themen 8
D Problem bei Aufruf einer Funktion Allgemeine Java-Themen 3
B Null Pointer Exception bei Canvas-objekt-Aufruf Allgemeine Java-Themen 12
S Aufruf in Konsole mit beliebig vielen Argumenten? Allgemeine Java-Themen 18
reibi Aufruf eines private Konstruktors Allgemeine Java-Themen 7
M Rekrusiver Aufruf ? Allgemeine Java-Themen 6
D aufruf beim kopieren Allgemeine Java-Themen 11
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
S problem mit externen aufruf Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben