Java store procedure that reference a external library.
Date: Wed, 2 Apr 2008 08:38:21 -0700 (PDT)
Message-ID: <8b1389b4-dc84-48e6-b88b-42ef19e5aa0f@a22g2000hsc.googlegroups.com>
Hi. I have this problem.
I can to compile a java store procedure that reference a external
library.
I tested this source in eclipse and execute correctly.
I want to copy a file using SFTP from external server to Oracle
server.
I have loaded the external library "jsch-0.1.37.jar" using javaload,
and compiled the java store procedure. But I have problem with the
load and with the java source.
The java source not find the external library.
I use:
Oracle 9.0.2.8.0
loadjava -definer -grant plsql -oci8 -resolve -schema tcm -synonym - user tcm/tcmpass_at_sgfdes.sion -verbose C:\aem\work\jsch-0.1.37.jar
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
create or replace and compile java source named copia_sftp as import com.jcraft.jsch.*;
/** * class Copia_Sftp */
public class Copia_Sftp extends Object
{
public static String ejecutar(String host, String user, String passwd, int port, String remote_path, String local_path, String file_name) { String error = "0"; String message = ""; try { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, port); // Crea una session . UsuarioSFTP ui = new UsuarioSFTP(); ui.setClave(passwd); session.setUserInfo(ui); session.connect(); // Abre el canal. Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp c = (ChannelSftp) channel; try { try { c.get(remote_path + file_name, local_path + file_name); return ((new String (error + message))); } catch (SftpException e) { e.printStackTrace(); error = "1"; message = e.toString(); System.out.println(e.toString()); } session.disconnect(); } catch (Exception e) { e.printStackTrace(); error = "1"; message = e.toString(); System.out.println(e); } } catch (Throwable e) { error = "1"; message = e.toString(); e.printStackTrace(); } finally { return ((new String (error + message))); } }
}
/** * class UsuarioSFTP */
public class UsuarioSFTP implements UserInfo,UIKeyboardInteractive
{
private String clave; private String nombre; public String getPassphrase() { return null; } public String getPassword() { return clave; } public boolean promptPassword(String message) { return true; } public boolean promptPassphrase(String message) { return true; } public boolean promptYesNo(String message) { return true; } public void showMessage(String message) { } public void setClave(String clave) { this.clave = clave; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String[] promptKeyboardInteractive(String destination, String name, String instruction, String[] prompt, boolean[] echo) { String [] resultado = new String [prompt.length]; resultado [0] = clave; return resultado; }
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
When I compile the java store procedure.
Compilation errors for JAVA SOURCE COPIA_SFTP
Error: Interface UIKeyboardInteractive of class UsuarioSFTP not
found.
Line: 69
Text: public class UsuarioSFTP implements
UserInfo,UIKeyboardInteractive
Error: Interface UserInfo of class UsuarioSFTP not found.
Line: 69
Text: public class UsuarioSFTP implements
UserInfo,UIKeyboardInteractive
Error: Class JSch not found.
Line: 23
Text: JSch jsch = new JSch();
Thank a lot.
Alvaro
Received on Wed Apr 02 2008 - 10:38:21 CDT