IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Scanning dans une page web avec java


Sujet :

Développement Web en Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Scanning dans une page web avec java
    Bonjour a tous...

    J'espere que ce message trouvera sa place dans ce forum, meme s'il touche plusieurs technologies.

    Je me presente : je suis un developpeur web, principalement en technologie php (bdd avec peardb, javascript, etc) mais je m'y connais tres peu en java (j'ai pige le principe des servlets, applets, etc mais je n'ai jamais code/compile de classes, je suis donc a considerer comme un grand debutant !).

    Si je vous ecris aujourd'hui c'est que je rencontre un soucis sur un site pour lequel java semble etre la seule solution.
    Je developpe actuellement un site de gestion de documents dans lequel j'ai un ecran d'ajout de document (pour resumer cela ressemble a un ecran pour ajouter des pieces jointes dans un message). En plus du bouton classique "parcourir" permettant d'aller chercher un fichier sur le disque dur, j'aimerai ajouter un bouton "scanner" permettant de recuperer directement un fichier sur un scanner (par exemple via un pilote twain) et de l'uploader sur le serveur.

    En fouillant un peu sur le web je suis tombe sur la classe Morena ( http://www.gnome.sk/Twain/jtp.html )... Apres avoir un peu galere, j'ai reussi a l'installer et a l'integrer dans une page php avec une ligne de code dans le genre :
    <APPLET CODE="MorenaStudio" ARCHIVE="morena/examples.jar, morena/morena.jar, morena/morena_windows.jar, morena/morena_license.jar" WIDTH="450px" HEIGHT="500px"/>

    La page avec l'applet s'affiche bien. Le scanning en soit se passe bien (lancement du pilote twain, scanning du document, apparition du document a l'ecran) mais mon probleme est que je ne sais fichetrement pas comment uploader le resultat sur le serveur. Les boutons "save to file" et "upload to server" reste grises et j'ai beau avoir fouille la faq, les manuels d'installation, les forums parlant de Morena, le code source (auquel je ne comprends pas grand chose), et meme le disque serveur dans le cas ou un fichier temporaire soit genere au moment du scanning, je suis completement largue !!!
    Il doit probablement y avoir du code a modifier pour rendre actif ces boutons ou un truc a personnaliser qq part mais la cela depasse mes connaissances en java...

    L'un de vous a t il deja utilise ou entendu parler de cette classe ? Comment doit elle etre implementee ? Que faut il modifier pour rendre l'upload possible ? Si c'est du code, comment modifier/recompiler la class ?
    Merci de votre aide...


    Lexan, au secours Obiwoppez.com, vous etes mon seul espoir...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Pour uploader un fichier, il faut que tu recupere l'evenement lorsque l'utilisateur click sur le bouton , et que tu fasse une connexion http et que tu envoie le flux aux serveur , le code de l'appli coté serveur peux (j'imagine) tres bien etre en PHP.
    Donc en gros tu doit trouver le listener sur le bouton en question et faire cela dans l'action actionperformed (il me semble que c'est le nom de la methode mais souvenir de client lourd sont lointain)

    Si tu ne sais pas du tout comment chercher , fait une recherche sur "setEnabled" il s'agit de la methode qui permet de rendre griser un composant si tu a un setEnabled(false) il y a des chance que le composant sur lequel il appelle cette methode soit l'un des bouton griser donc change le een setEnabled(true)
    Et regarde ce que ca donne.

    Mais bon apres reste a savoir si il a coder un actionlistener, il y a peut de chance puisque il ne pouvait pas savoir ce que tu voulais faire .

    Mais bon c'est un debut
    UML avec VIOLET

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par FreshVic
    Pour uploader un fichier, il faut que tu recupere l'evenement lorsque l'utilisateur click sur le bouton , et que tu fasse une connexion http et que tu envoie le flux aux serveur , le code de l'appli coté serveur peux (j'imagine) tres bien etre en PHP.
    En effet, c'est ce que j'ai vu dans le code source java..
    Dans la private class UploadImageAction il y a une fonction public synchronized void run() dans laquelle est lancer ce genre de fonction :
    URL uploadURL=new URL(documentBase, "upload.php");

    Le bouton en question semble etre conditionne comme suit :
    uploadImageAction.setEnabled(hasJAI && hasServer);

    La premiere variable citee est defni grace a :
    hasServer=documentBase!=null && documentBase.getProtocol().indexOf("http")!=-1;
    Euh... ce je suppose comprendre que des que le protocole http repond et des qu'un document vient d'etre scanne ca devrait etre bon non ?

    Pour l'autre j'ai trouve un :
    if (JAI.class!=null) hasJAI=true;

    Sachant qu'au debut de la fonction j'ai un :
    import javax.media.jai.JAI;

    La je ne sais pas du tout ce qu'est cette classe...
    Bon, du coup j'ai installe le JDK et tente de recompiler le tout (y'avait un makefile file avec) mais la pas de bol a la compil j'ai le message "package javax.media.jai does not exist". Et la ben je me retrouve perdu a nouveau... Comment trouver ce package ? C'est un fichier qu'il manque dans mon repertoire de compilation ?

    En tous cas, merci pour tes conseils, j'y vois deja un peu plus clair...


    Lexan

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    hasServer=documentBase!=null && documentBase.getProtocol().indexOf("http")!=-1;
    En fait tu as deux façon de lancer une applet soit directement chez toi , tu a les class et tu l'essaye, soit en passant par un serveur sur un site , j'imagine que dans le premier cas le documentBase est null par contre dans le second cas il s'agit de l'adresse du serveur d'ou proviens l'applet, ensuite il verifie aussi que le protocole utilisé est http (enfin j'imagine)

    Ensuite JAI (Java Advanced Image) est une lib Sun qui n'est pas livrer avec le jdk c'est une lib dedié au traitement d'image , va voir chez sun : http://java.sun.com/products/java-media/jai/

    tu devrais pouvoir la downloader, a toi de l'inclure au classpath et de compiler.
    UML avec VIOLET

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par FreshVic
    En fait tu as deux façon de lancer une applet soit directement chez toi , tu a les class et tu l'essaye, soit en passant par un serveur sur un site , j'imagine que dans le premier cas le documentBase est null par contre dans le second cas il s'agit de l'adresse du serveur d'ou proviens l'applet, ensuite il verifie aussi que le protocole utilisé est http (enfin j'imagine)
    Ok... de mon cote j'imaginais que le documentBase definissait si oui ou non un fichier venait d'etre scanne... En gros null au debut de l'applet puis non null une fois un scan effectue...

    Citation Envoyé par FreshVic
    Ensuite JAI (Java Advanced Image) est une lib Sun qui n'est pas livrer avec le jdk c'est une lib dedié au traitement d'image , va voir chez sun : http://java.sun.com/products/java-media/jai/
    J'ai vu ca en effet... d'ailleurs je pense que mon soucis viens de la car en ouvrant la console java (je suis sur windows) je remarque au demarrage de l'applet le message d'alerte "JAI not found".
    Pourtant j'ai bien telecharge et installer les fichiers jai-1_1_3-lib-windows-i586.exe et jai-1_1_3-lib-windows-i586-jdk.exe trouves sur le site de sun.

    Citation Envoyé par FreshVic
    tu devrais pouvoir la downloader, a toi de l'inclure au classpath et de compiler.
    Dans mes variables d'environnements windows (proprietes / systeme), j'ai modifie les variables systemes "path" et "classpath" (auxquelles j'ai ajoute : ";C:\Program Files\Java\jdk1.5.0_08\bin;C:\Program Files\Sun Microsystems\Java Advanced Imaging 1.1.3\lib") et j'ai malgre tout le message "JAI not found". Y'aurait il quelque chose d'autre a installer pour que le "plugin" soit reconnu ?

    Merci pour toutes tes reponses...

    Lexan

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    J'ai jamais utliser JAI mais pour ajouter une lib il suffit d'ajouter le .jar dans le classpath.
    Je telechargerais donc le jai-1_1_2_01-windows-i586-jar.zip que je dezipperai dans un repertoire du classpath ou un repertoire que j'ajouterai ensuite dans le classpath, et la ca devrait mieux marcher !!!
    UML avec VIOLET

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par FreshVic
    J'ai jamais utliser JAI mais pour ajouter une lib il suffit d'ajouter le .jar dans le classpath.
    Je telechargerais donc le jai-1_1_2_01-windows-i586-jar.zip que je dezipperai dans un repertoire du classpath ou un repertoire que j'ajouterai ensuite dans le classpath, et la ca devrait mieux marcher !!!
    Euh... ben en fait j'allais tester ta methode et, oh miracle, mon message a disparu avant que je puisse le tester... Je suppose qu'a force de reinstaller plusieurs fois la bibliotheque et de redemmarer le PC, une variable qui manquait a finit par apparaitre... En tout cas, cool ca marche ! Il ne me reste plus qu'a essayer de modifier et recompiler la classe mais au moins elle fonctionne... et le pire c'est que je ne sais fichtrement pas ce que j'ai fait pour qu'elle demarre... Par contre je pensais a qq chose... cela veut il dire que je devrais installer cette bibliotheque sur tous les PC clients equipes de scanners ?


    Lexan

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Je ne suis pas un expert des Applet (decidement je sais pas grand chose finalement ) mais je pense que tu as juste à déclarer les .jar dont ton applet à besoin.

    J'ai trouver ca apres une petite recherche :

    http://www.developpez.net/forums/sho...d.php?t=184410

    C'est bien ce que je pensais, le jar de jai sera lui aussi telecharger en meme temps que l'applet.
    UML avec VIOLET

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Je m'intéresse également à cette applet Morena.

    En installant les jar de la JAI, j'arrive à faire fonctionner l'applet : numérisation d'une image et enregistrement dans un fichier sur mon poste local. Par contre, l'upload m'envoie une erreur java.net.malformedurlexception. D'après ce que j'ai compris, il semblerait que le problème vienne du fait que le protocole n'est pas reconnu. J'ai essayé sur deux serveurs différents, l'un sur mon réseau local (machines Linux avec Apache et PHP/mySQL), l'autre chez OVH (également Linux avec Apache, PHP et mySQL). Toujours ce message d'erreur.

    J'ai donc essayé de rentrer dans le code source de l'applet. Je tiens à signaler que je n'ai jamais développé en Java...

    J'ai réussi à compiler le fichier .java en fichier .class, puis je l'ai "transformé" en .jar. Sans avoir modifié le moindre caractère du code source de Morena, le tout se compile bien, et l'applet s'affiche dans ma page Web. Par contre, dès que je clique sur "Scan", j'ai une erreur java.lang.nullpointerexception, qui semblerait dire que j'essaye d'appeler des méthodes sur un objet null... Comment cela est-il possible, alors que je n'ai pas modifié le code source ? Est-ce dû à la version du JDK (j'ai la version 1.6.0.01 installée) ?

    Merci par avance pour vos réponses.

Discussions similaires

  1. comment lire d'une page web avec java
    Par midouche dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 06/02/2013, 18h49
  2. Etat dans une page web en Java
    Par kewatar dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 31/05/2011, 16h12
  3. cocher checkbox dans une page web avec du javascript
    Par Noddles dans le forum Web & réseau
    Réponses: 5
    Dernier message: 12/03/2010, 14h16
  4. Réponses: 10
    Dernier message: 10/02/2009, 09h25
  5. Son dans une page Web avec Firefox
    Par diod dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 02/12/2005, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo