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:
Und der Sender:
Soweit so einfach, das klappt aber unerklärlicherweise nicht.....
Rufe ich das Sender-Servlet auf, sehe ich folgende Ausgabe:
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
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:
Also die Ausgabe des Empängerservlets.
Genauso klappt die URL mit Parametern:
Ausgabe:
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!
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!