Italian BAJ StartMessageLoop

duilio

New Member
Licensed User
Longtime User
salve a tutti,
premesso che non sono esperto, ho realizzato un pgm che utilizza SFTP per eseguire upload di 1 file, ma ricevo questo errore nella specifica di StartMessageLoop che attende la risposta dal server. Mi sembra di capire dall'errore che non trova una Sub sftp1_showmessag , ma, eventualmente, non saprei cosa metterci in questa Sub.
Mi potete dare una "dritta" ?

Waiting for debugger to connect...
Program started.
Errore nella linea: 60
java.lang.RuntimeException: java.lang.Exception: Sub sftp1_showmessage was not found.
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:120)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA$3.run(BA.java:247)
at anywheresoftware.b4a.keywords.SimpleMessageLoop.runMessageLoop(SimpleMessageLoop.java:30)
at anywheresoftware.b4a.StandardBA.startMessageLoop(StandardBA.java:26)
at anywheresoftware.b4a.shell.ShellBA.startMessageLoop(ShellBA.java:119)
at anywheresoftware.b4a.keywords.Common.StartMessageLoop(Common.java:153)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:309)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:78)
at b4j.Sftp.main.main(main.java:29)
Caused by: java.lang.Exception: Sub sftp1_showmessage was not found.
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:98)
... 16 more
B4X:
Sub AppStart (Args() As String)
    dirRemota = Args(0)
    dirLocale = Args(1)
    nomefile = Args(2)
    dirHosts = Args(3)
    operazione = Args(4)
    serverRemoto = Args(5)
    utente = Args(6)
    password = Args(7)
    fileHosts = Args(8)
    esten1 = Args(9)
    esten2 = Args(10)
    porta = Args(11)

    If dirRemota.Length > 1 Then
        dirRemota = dirRemota & "/"
    End If

    nomefileRen=nomefile.SubString2(0, nomefile.Length-3) & esten2

    'sftp1.Initialize("sftp1", utente, password, serverRemoto, 22)
    sftp1.Initialize("sftp1", utente, password, serverRemoto, porta)
    sftp1.SetKnownHostsStore(dirHosts, fileHosts)

    If operazione="up" Then
        sftp1.UploadFile(dirLocale, nomefile, dirRemota & nomefile)
    End If

    If operazione="dw" Then
        sftp1.DownloadFile(dirRemota & nomefile, dirLocale, nomefile)
    End If

    StartMessageLoop

End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
Mi pare che dica che manca sftp1_showmessage

B4X:
Sub sftp1_ShowMessage (Message As String)
   fx.Msgbox(MainForm, Message, "Title")
End Sub
 

duilio

New Member
Licensed User
Longtime User
Mi pare che dica che manca sftp1_showmessage

B4X:
Sub sftp1_ShowMessage (Message As String)
   fx.Msgbox(MainForm, Message, "Title")
End Sub

Questo è un Non-UI e negli esempi che ho trovato (compreso il tutorial di Erel per applicazioni Non-UI) si dovrebbe usare solo StartMessageLoop.
 

Star-Dust

Expert
Licensed User
Longtime User
Questo è un Non-UI e negli esempi che ho trovato (compreso il tutorial di Erel per applicazioni Non-UI) si dovrebbe usare solo StartMessageLoop.
Allora mettilo vuoto, ma la sub ci dev'essere
B4X:
Sub sftp1_ShowMessage (Message As String)
   log(Message)
End Sub
 
Top