boeser_micha
Grünschnabel
Guten Morgen,
ich habe da ein hoffentlich kleines Problem mit Java in der Oracle –Datenbank.
Ich habe schon paar *.Java , *.Classes und *.Jar Dateien in die Datenbank geladen und es
funktioniert auch soweit alles prima.
Umgebung:
Oracle 10.2 auf HPUX,.Das Verzeichnis, aus dem ich lesen möchte, steht in der Verzeichnisliste unter UTL_FILE_DIR, d.h. Oracle kann dort generell Lesen und Schreiben. Ich habe auch das Grant erstmal für genau eine Datei, die ich laden möchte, vergeben.
dbms_java.grant_permission( 'GDV', 'SYS:java.io.FilePermission','/oracle02/batch/SPOCK/Angebotsanfrage2.TIF', 'read' )
Rechte auf diese Datei habe ich entsprechend geprüft -> lesender Zugriff möglich.
Mein Problem:
Ich möchte einfach ein simples BLOB aus dem Verzeichnis lesen. Das Programm (nur Ausschnitt, Rest uninteressant) ist aber nicht mal in der Lage (also ich auch nicht ) den FileInputStream zu öffnen. Wenn ich einen Dateinamen Angebe, für das ich keinen Grant vergeben habe, kommt die übliche Permission blahblah Meldung. Mit der korrekten Datei erhalte ich aber immer
java.lang.NullPointerException at TiffToPDF.ReadFileString(TiffToPDF:69) Position 69 verweist auf die Zeile FileInputStream in = new FileInputStream(datei)
Auszug Programm:
public static String ReadFileString( String datei )
{
try {
BLOB binDat = null;
FileInputStream in = new FileInputStream(datei);
try {
OutputStream out = binDat.getBinaryOutputStream();
int chunk = binDat.getChunkSize();
int length;
byte[] buffer = new byte[chunk];
while ((length = in.read(buffer)) != -1){
out.write(buffer,0,length);}
in.close();
out.close();
Irgendwie ist mir nicht so klar, ob ich noch irgendwelche anderen Berechtigungen o. sonst was brauche um eine File zu lesen.
select * from dba_java_policy
where grantee = 'GDV';
ergibt:
KIND GRANTEE TYPE_SCHEMA TYPE_NAME NAME ACTION ENABLED SEQ
GRANT GDV SYS java.io.FilePermission /oracle02/batch/SPOCK/Angebotsanfrage2.TIF read ENABLED 161
Was mache ich falsch
Grüße und vielen Dank
Michael
ich habe da ein hoffentlich kleines Problem mit Java in der Oracle –Datenbank.
Ich habe schon paar *.Java , *.Classes und *.Jar Dateien in die Datenbank geladen und es
funktioniert auch soweit alles prima.
Umgebung:
Oracle 10.2 auf HPUX,.Das Verzeichnis, aus dem ich lesen möchte, steht in der Verzeichnisliste unter UTL_FILE_DIR, d.h. Oracle kann dort generell Lesen und Schreiben. Ich habe auch das Grant erstmal für genau eine Datei, die ich laden möchte, vergeben.
dbms_java.grant_permission( 'GDV', 'SYS:java.io.FilePermission','/oracle02/batch/SPOCK/Angebotsanfrage2.TIF', 'read' )
Rechte auf diese Datei habe ich entsprechend geprüft -> lesender Zugriff möglich.
Mein Problem:
Ich möchte einfach ein simples BLOB aus dem Verzeichnis lesen. Das Programm (nur Ausschnitt, Rest uninteressant) ist aber nicht mal in der Lage (also ich auch nicht ) den FileInputStream zu öffnen. Wenn ich einen Dateinamen Angebe, für das ich keinen Grant vergeben habe, kommt die übliche Permission blahblah Meldung. Mit der korrekten Datei erhalte ich aber immer
java.lang.NullPointerException at TiffToPDF.ReadFileString(TiffToPDF:69) Position 69 verweist auf die Zeile FileInputStream in = new FileInputStream(datei)
Auszug Programm:
public static String ReadFileString( String datei )
{
try {
BLOB binDat = null;
FileInputStream in = new FileInputStream(datei);
try {
OutputStream out = binDat.getBinaryOutputStream();
int chunk = binDat.getChunkSize();
int length;
byte[] buffer = new byte[chunk];
while ((length = in.read(buffer)) != -1){
out.write(buffer,0,length);}
in.close();
out.close();
Irgendwie ist mir nicht so klar, ob ich noch irgendwelche anderen Berechtigungen o. sonst was brauche um eine File zu lesen.
select * from dba_java_policy
where grantee = 'GDV';
ergibt:
KIND GRANTEE TYPE_SCHEMA TYPE_NAME NAME ACTION ENABLED SEQ
GRANT GDV SYS java.io.FilePermission /oracle02/batch/SPOCK/Angebotsanfrage2.TIF read ENABLED 161
Was mache ich falsch
Grüße und vielen Dank
Michael