2011-01-24 10 views
5

La nostra applicazione Java in-house lancia vari URL http in vari momenti, inclusi URL per pagine Web, documenti MS Word, documenti MS Excel, file PDF ecc.Adobe Acrobat intercetta ogni URL dalla chiamata a BasicService.showDocument() in java

Su oltre 50 macchine l'avvio dell'URL funziona correttamente e l'applicazione corretta apre correttamente la pagina o il documento. Tuttavia, su una macchina fastidioso Adobe Acrobat sta tentando di aprire ogni URL (indipendentemente dal fatto che la destinazione è un pdf o meno), e in mancanza (anche su documenti pdf) con:

C'è stato un errore l'apertura di questo documento, . Il nome del file, il nome della directory o la sintassi dell'etichetta del volume non sono corretti.

Il codice per lanciare gli URL è:

URL url = new URL("http://www.example.com"); 
BasicService bs = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService"); 
boolean worked = bs.showDocument(url); 

La variabile worked è vero dopo la chiamata.

Altri punti che possono essere utili:

  • L'applicazione viene eseguita all'interno di Java Web Start.
  • Un applet in esecuzione sulla stessa macchina è in grado di aprire gli URL correttamente utilizzando AppletContext.showDocument()
  • inserimento di un URL nella Windows "Esegui ..." dialogo lancia l'URL corretto.
  • Abbiamo reinstallato sia JRE che Adobe Acrobat.

Grazie in anticipo per qualsiasi consiglio/aiuto che puoi offrire.

Aggiornamento:

Il seguente codice di debug produce il seguente output:

String[] services = ServiceManager.getServiceNames(); 
    if(services!=null) { 
     for(int i=0;i<services.length;i++) { 
     System.out.println("Available Service: "+services[i]); 
     } 
    } 

    BasicService bs = (BasicService)ServiceManager.lookup("javax.jnlp.BasicService"); 
    System.out.println(url); 
    System.out.println(bs); 
    System.out.println("bs.getCodeBase():"+bs.getCodeBase()); 
    System.out.println("bs.isOffline():"+bs.isOffline()); 
    System.out.println("bs.isWebBrowserSupported():"+bs.isWebBrowserSupported()); 
    boolean worked = bs.showDocument(url); 
    System.out.println("bs.showDocument:"+worked); 
    } catch(UnavailableServiceException ue) { 
    System.out.println("UnavailableServiceException thrown"); 
    ue.printStackTrace(); 
    } 


Available Service: javax.jnlp.BasicService 
Available Service: javax.jnlp.FileOpenService 
Available Service: javax.jnlp.FileSaveService 
Available Service: javax.jnlp.DownloadService 
Available Service: javax.jnlp.ClipboardService 
Available Service: javax.jnlp.PersistenceService 
Available Service: javax.jnlp.PrintService 
Available Service: javax.jnlp.ExtendedService 
Available Service: javax.jnlp.SingleInstanceService 
http://<snip> 
[email protected] 
bs.getCodeBase():http://xxx.xxxxxx.com:8080/ 
bs.isOffline():false 
bs.isWebBrowserSupported():true 
bs.showDocument:true 

risposta

1

avete risolto questo problema ancora? In caso contrario, potresti provare quanto segue?

FileOpenService fos = (FileOpenService)ServiceManager.lookup("javax.jnlp.FileOpenService"); 
+0

Grazie. Ho modificato il mio post originale sopra ... sembra che sia presente FileOpenService ...? – cagcowboy

Problemi correlati