Oracle Report generieren

Status
Nicht offen für weitere Antworten.
P

PLSQL-Entwickler

Gast
Hallo,

ich möchte einen Report aus JSP generieren.
Ich hatte bis jetzt immer mit PLSQL-ServerPages gemacht, nun möchte ich das gleiche auch mit JSP versuchen.
Mit PLSQL geht es so:

Code:
...
    v_url   varchar2(1000);
    v_daten varchar2(4000);
    v_req   utl_http.req;
    v_resp  utl_http.resp;
...
  begin
    v_url   := 'report-server/rwservlet?destype=file&desformat=PDF&server=repserv&report=report.rep&desname=ausgabedatei.pdf';
    v_req   := utl_http.begin_request(v_url);
    v_resp  := utl_http.get_response(v_req);
    utl_http.read_text(v_resp, v_daten);
    utl_http.end_response(v_resp);
  end;

Das Package UTL_HTTP macht es möglich. Die Daten von einer URL-Adresse werden abgerufen und in die Variable v_daten geschrieben. Das Ergebnis konnte auch eine 404-Seite (Fehler) sein. Das ist mir aber egal, weil die URL-Adresse den Reportserver aufruft. Und wenn es erfolgreich war, habe ich am Ende meine ausgabe.pdf in entspr. Verzeichnis. Eigentlich ist die Funktion utl_http.get_response dafür da, um die Existent der URL zu überprüfen, dennoch wird die URL ausgeführt, was für mich wichtig ist.

Um URL-Existenz in JAVA zu bestimmen habe ich folgendes gefunden :### :

Code:
	static boolean URLexists(java.lang.String URL)
	{
		java.net.URL url;
		try
		{
			url = new URL(URL);
		} catch (MalformedURLException e)
		{
			return false;
		}
		try
		{
			url.openStream().close();
			return true;
		} catch (IOException e)
		{
			return false;
		}
	}

Es funktioniert mit normalen URL-Adressen, wird aber in meinem Fall kein Report generiert.
Folgende Funktion macht es auch nicht:

Code:
	static boolean URL_exists(String URLName)
	{
		try
		{
			HttpURLConnection.setFollowRedirects(false);
			HttpURLConnection con = 
						(HttpURLConnection)new URL(URLName).openConnection();
			con.setRequestMethod("GET");
			con.connect();
			return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
		} catch (Exception e)
		{
			e.printStackTrace();
			return false;
		}
	}

Es muss doch möglich sein ???:L . Hat jemand eine Idee?
 
M

maki

Gast
Code:
report-server/rwservlet?destype=file&desformat=PDF&server=repserv&report=report.rep&desname=ausgabedatei.pdf
Das ist doch keine URL.

Das ist eine:
Code:
http://report-server/rwservlet?destype=file&desformat=PDF&server=repserv&report=report.rep&desname=ausgabedatei.pdf
 
P

PLSQL-Entwickler

Gast
Das ist schon richtig. Ich habe nur abgekürzt, um hier nicht zu lange Texte zu haben. Der Aufruf ist schon richtig so:
"http://report-server...".

Aber Problem liegt nicht in der URL selber :noe:, weil ich diese genauestens geprüft und getestet habe.
 
M

maki

Gast
Nun gut,

deine URL setzt voraus, dass da ein HTTP Server lauscht, tut er das denn?
 
P

PLSQL-Entwickler

Gast
Ich gehe davon aus. Ich habe es so getestet:
im Oracle JDeveloper eine JSP-Seite gestartet (JDeveloper startet Server lokal). JSP läuft im IE-Browser.
In JSP wird URL geprüft mit obengenannten Methoden - keine PDF-Datei :bahnhof:.
In selbem Browser URL eingefügt - PDF-Datei erstellt :!:!
 
P

PLSQL-Entwickler

Gast
Ich habe inzwischen eine weitere Möglichkeit gefunden:

Code:
	static boolean URL_exists_3(String myURL)
	{
	   try
	   {
	     URL url = new URL(myURL);
	     Reader is = new InputStreamReader( url.openStream() );
 	     return true;
	   }
	   catch ( MalformedURLException e ) {
	     System.out.println( "MalformedURLException: " + e );
		  return false;
	   }
	   catch ( IOException e ) {
	     System.out.println( "IOException: " + e );
		  return false;
	   }
   }

Dabei ist mir aufgefallen, dass es doch ein Unterschied gibt: Lokale URLs kann ich lesen:
"http://pc-user:8988/JSFIntro-view-context-root/faces/welcome.jsp"
Dagegen die URL aus dem Netz (kein Internet) nicht:
"http://int.server.de/webdev/start.htm"
Dabei meldet die Methode Fehler 407 (Wahrscheinlich: 407 Proxy Authentication Required).
Wird die selbe URL im Browser eingegeben - kein Fehler!

:cry:
 
P

PLSQL-Entwickler

Gast
:oops: ich habe es gefunden!
Ich habe für JDevelopr unter "Web Browser and Proxy" die Proxy-Einstellungen gemacht, damit er sich die Hilfe, Infos, Update usw. aus dem Inet holt. Ich habe die Proxy abgeschaltet und es funktioniert :toll:!
Danke für Eure Hilfe!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben