# Anderes Servlet aufrufen



## achtim (15. Sep 2004)

Hallo, ich habe folgendes Problem, bzw. keine Ahnung welche Klassen ich brauche..

Ich habe ein Servlet welches ich über HTTP (post) aufrufe und welches mir ein PDF zurück an den Browser schickt. Dies funktioniert auch wunderbar. Nun will ich allerdings dieses Servlet (weil es später innerhalb eines anderen Container) laufen wird, via HTTP aufrufen und natürlich das pdf bzw. den Bytestream zurückbekommen.

Wie kann ich das angehen bzw. welche Klassen sind dafür die richtigen?


----------



## Bleiglanz (15. Sep 2004)

sendRedirect?

was genau willst du machen: Der Servlet liegt auf ServerA und eine andere Java App läuft auf ServerB und soll sich das PDF abholen? Wenns so ist, musst du halt den POST request erzeugen (java.net.*, durchsuch das Forum)


----------



## meez (15. Sep 2004)

Warum den das...Link doch direkt auf das Servlet, das das PDF-Dokument erstellt....


----------



## achtim (16. Sep 2004)

Ich möchte das Servlet aus irgendeiner anderen Applikation heraus aufrufen können und den Bytestream zurück bekommen. Wie gesagt über http (post) und so evtl. noch diverse parameter mitgeben. das ganze soll nicht als redirect gemacht werden!
es gibt da die klasse HttpURLConnection.. zum einen weiß ich nicht, ob ich da das richtige gefunden habe und zum anderen weiß ich nicht, wie ich die verwenden kann   
Danke schonmal!


----------



## achtim (21. Sep 2004)

Ah, möchte noch kurz ergänzen (habs nämlich hinbekommen):


```
URL url = new URL(servletUrl);
    urlCon = (HttpURLConnection) url.openConnection();	
    urlCon.setRequestMethod("POST");

    //hole output stream der connection
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(urlCon.getOutputStream()));

    //Parameter der Form <key>=<value> in den output stream schreiben
    Hashtable parameter = new Hashtable();
    parameter.put("param1", "beispielparameter");			
        //...
    for(Iterator i=parameter.entrySet().iterator(); i.hasNext(); ) {
        Map.Entry entry = (Map.Entry)i.next();
        String postParameter = entry.getKey() + "=" + entry.getValue() + (i.hasNext() ? "&" : "");
        out.write(postParameter);
    }
    out.flush();
    out.close();

    //Ergebnis lesen...
```


----------

