File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Applets and the fly likes Applet to upload files with SCP to Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Applets
Bookmark "Applet to upload files with SCP to" Watch "Applet to upload files with SCP to" New topic
Author

Applet to upload files with SCP to

Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
I create an applet to Upload files using SCP to.
I use the com.jcraft.jsch_0.1.44.jar to do the SCP to Client.
This work in eclipse, but in web a have an error:


java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/jcraft/jsch/UserInfo
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/jcraft/jsch/UserInfo
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.UserInfo
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 20 more
Exceção: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/jcraft/jsch/UserInfo

The jar file is include in BuildPath and I export the JAR in File>export menu. What Happen? Please....
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
Post the applet tag and the layout of the files and directories on the server.
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
the applet tag:

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"
width="130" height="25" mayscript="true">
<param name="type" value="application/x-java-applet;version=1.4">
<param name="code" value="SmartCardSignerApplet">
<param name="archive" value="SmartCardSignerApplet.jar">
<param name="archive" value="itext.jar">
<param name="mayscript" value="true">
<param name="scriptable" value="true">
<param name="fileNameField" value="fileToBeSigned">
<param name="certificationChainField" value="certificationChain">
<param name="signatureField" value="signature">
<param name="signButtonCaption" value="Gerar Assinatura">
<comment>
<embed
type="application/x-java-applet;version=1.4"
pluginspage="http://java.sun.com/products/plugin/index.html#download"
code="SmartCardSignerApplet" archive="SmartCardSignerApplet.jar"
width="130" height="25"
mayscript="true" scriptable="true"
fileNameField="fileToBeSigned"
certificationChainField="certificationChain"
signatureField="signature"
signButtonCaption="Gerar Assinatura">
<noembed>
Sistema de Assinatura de Documentos não pode ser carregado,
Por Favor Instale o Plugin Java mais recente!
</noembed>
</embed>

the archieve is an xml...
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
Where are the JSch classes - in SmartCardSignerApplet.jar? If they're not, then you need to mention the jar file they're in as part of the archive attribute's value.

At least that's how the applet tag works, I consider object and embed more trouble than they're worth.
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
I see the JSch classes are not included to the jar. How can I include the JSch.jar in the JAR exported from eclipse???
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
I wouldn't do that, those classes have nothing to do with your applet, and you may wish to update (and use) them separately. Just make sure that your archive attribute looks something like: archive="SmartCardSignerApplet.jar, jsch.jar"
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
Tim Moores wrote:I wouldn't do that, those classes have nothing to do with your applet, and you may wish to update (and use) them separately. Just make sure that your archive attribute looks something like: archive="SmartCardSignerApplet.jar, jsch.jar"


I Tryed, but don't work....

here the code:

private void salvaServer (String fl) throws IOException, JSchException{
JSch jsch=new JSch();
Session session=jsch.getSession("root", "192.168.2.10", 22);

// UserInfo ui= new MyUserInfo();
// session.setUserInfo(ui);

session.setUserInfo(new UserInfo() {
public String getPassphrase() {
return null;
}
public String getPassword() {
return "passString";
}
public boolean promptPassword(String message) {
return true;
}
public boolean promptPassphrase(String message) {
return false;
}
public boolean promptYesNo(String message) {
return true;
}
public void showMessage(String message) {
}
});


session.connect();
String command="scp -p -t "+"arquivo-assinado.xml";
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);

OutputStream out=channel.getOutputStream();
InputStream in=channel.getInputStream();

channel.connect();

if(checkAck(in)!=0){
System.exit(0);
}


long filesize=(new File(fl)).length();
command="C0644 "+filesize+" ";
if(fl.lastIndexOf('/')>0){
command+=fl.substring(fl.lastIndexOf('/')+1);
}
else{
command+=fl;
}
command+="\n";
out.write(command.getBytes()); out.flush();
if(checkAck(in)!=0){
System.exit(0);
}

// envia conteudo do arquivo
FileInputStream fis=new FileInputStream(fl);
byte[] buf=new byte[1024];

int len = buf.length;

out.write(buf, 0, len);

fis.close();
fis=null;

buf[0]=0; out.write(buf, 0, 1); out.flush();
if(checkAck(in)!=0){
System.exit(0);
}
out.close();

channel.disconnect();
session.disconnect();

/*
File dir = new File("C:\\XML");
if(dir.exists()){
for ( File f : dir.listFiles() ) {//apaga arquivos da maquina do usuário

if (f.isFile()) {

f.delete();
}
}//fecha for verifica arquivos na pasta
dir.delete();
}//fecha verifica se diretorio existe
*/

System.exit(0);
}//fecha salva file

I don't know what to do. Thanks for attention....
Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
What have you tried? What does the code have to do with how you're deploying it?
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
I tried make the archive attribute like this: archive="SmartCardSignerApplet.jar, jsch.jar"
But don't work.

The code do:

- copy a xml archieve from the server to disc - this is ok.

- open this xml, acess a A3 certificate, sign the xml (XMLDSIG RFC 3275) and save the signed xml to disc - this ok too.

- after this, i have to send the signed xml to my server using the SCP protocol.

Its run in an applet. But when I run the applet I have the error message. I can attach the project, and distribuition if you need. Thanks again.

Tim Moores
Rancher

Joined: Sep 21, 2011
Posts: 2408
Both jar files must be in the same directory as the HTML file; are they?
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
Yes. Same directory. I had imported other class of com.jcraft.jsch and it loaded, but only the class UserInfo not loaded. I changed the version of JAR file, and had the same error.

to download the files of project: www.ecowebstudio.com.br/Project.zip
to download the files of distribuition: www.ecowebstudio.com.br/Dist.zip

Thanks.
Luis Martins
Greenhorn

Joined: Mar 07, 2012
Posts: 8
I found the error.

The JARs files from JSch may be copied to /lib/ext from JRE.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Applet to upload files with SCP to