2017-07-23 1 views
0

Je cours un fichier jar, mais je reçois les erreurs suivantes lorsque je veux télécharger un fichier (qui existe).Aucune erreur de protocole, Java, lors du téléchargement du fichier

[email protected]:~/ltserver$ java -jar lt4el-cmd.jar send -l en "file:Here.doc" 
ERROR [Thread-1]: Error getting url: no protocol: Here.doc (AppInterface.java:140) 

La partie du fichier AppInterface.java où l'erreur est générée est (je commentais la ligne 140 pour faciliter le suivi):

public void run() { 
     byte[] anaContent; 
     byte[] ontContent; 
     byte[] dceContent; 
     Document doc = null; 

     try { 
     //create new Document object, initial status == FAILED 
      DocumentStatus status = new DocumentStatus(DocumentStatus.Status.PROCESSING, "Preprocessing"); 
      doc = new Document(id, LangCode.toInt(lang), status, true, 0); 
      doc.lockRW(); 

      //add the document and process it 
      docControl.addDocument(doc); 
     } catch (Exception e) { 
      String error = "Error adding document: "+e.getMessage(); 
    /*Line 140*/ log.error(error); 
      try { 
       if (doc != null) { 
        docControl.setDocumentStatus(doc, DocumentStatus.Status.FAILED, error); 
        doc.unlockRW(); 
       } 
       db.sync(); //FIXME 
      } catch (Exception ex) { 
       // ignore 
      } 
      return; 
     } 

     try { 
      // save the document data 
      log.debug("reading URL..."); 
      docControl.setDocumentStatus(doc, DocumentStatus.Status.PROCESSING, "Reading source document"); 
      readURL(url); 
     } catch (Exception e) { 
      String error = "Error getting url: "+e.getMessage(); 
      log.error(error); 
      try { 
       docControl.setDocumentStatus(doc, DocumentStatus.Status.FAILED, error); 
       doc.unlockRW(); 
       db.sync(); //FIXME 
      } catch (Exception ex) { 
       // ignore 
      } 
      return; 

Les options de la commande send sont:

- send a LO (test.xml) into the LTserver, language is set to Czech. test.xml must reside in the Docs directory as specified in the property file. 

    $ java -jar lt4el-cmd.jar send -l cs "test LO.xml" 

By default, ID is a file name ("test LO.xml" in our example). To assign different ID, you can prepend it to the file name (separated by a colon). E.g. to give the learning object ID "lo1": 

    $ java -jar lt4el-cmd.jar send -l cs "lo1:test LO.xml" 

J'ai essayé ce qui suit:

java -jar lt4el-cmd.jar send -l en "file:Here.doc" 
java -jar lt4el-cmd.jar send -l en "Here.doc" 
java -jar lt4el-cmd.jar send -l en "file:/path/to/Here.doc" 
java -jar lt4el-cmd.jar send -l en "/path/to/Here.doc" 

Mais il donne toujours la même erreur. Je ne sais pas où est le problème. Merci

+0

En réalité, les options pour la commande sont: 'envoyer un fichier LO (test LO.xml) dans le LTserver, la langue est définie sur Czech. test.xml doit résider dans le répertoire Docs comme spécifié dans le fichier de propriétés. \t $ java -jar lt4el-cmd.jar envoyer -l cs "test LO.xml" Par défaut, ID est un nom de fichier ("test LO.xml" dans notre exemple). Pour attribuer un ID différent, vous pouvez le préfixer au nom du fichier (séparé par deux points). Par exemple. pour donner l'ID d'objet d'apprentissage "lo1": \t $ java -jar lt4el-cmd.jar envoyer -l cs "lo1: test LO.xml" 'So' fichier: 'est juste pour lui donner un nom. Je ne sais pas si cela aide – TheSolider

+0

Trier par: Je sais maintenant que vous n'essayez pas de transmettre le fichier via une URL en utilisant le schéma de fichier, donc mon commentaire précédent est inutile. Aucune idée de la raison pour laquelle vous obtenez ce 'Error getting url: no protocol: Here.doc'; Il semble que vous ne devriez pas vous soucier des URL et l'application devrait les gérer par elle-même. D'après ce que je comprends, vous devriez cependant passer deux choses dans votre argumentation; dans leur exemple 'test LO.xml' correspond à deux fichiers, un' test.xml' qui doit résider dans le répertoire Docs et un 'LO.xml' supposé se trouver dans le répertoire courant. – Aaron

+0

Je pensais que c'était juste une erreur typographique et le nom du fichier est en fait 'test LO.xml' – TheSolider

Répondre

0

Les spécifications requises en fait une URL HTTP et je lui donnais un fichier de mon système local comme file:/// qu'il ne pouvait pas résoudre en FTP. Par conséquent, je recevais: ERROR [Thread-1]: Error getting url: no protocol: . . .. Pour contourner le problème, j'ai mis le fichier sur le serveur XAMPP - path/to/opt/lampp/htdocs/file - et j'ai pu l'évaluer à travers: http://localhost:file qui était une URL HTTP valide.