[jbosstools-issues] [JBoss JIRA] (JBDS-3371) The method openFileDialog(null, null) is undefined for the type FileOpenService

Denis Golovin (JIRA) issues at jboss.org
Wed Mar 11 18:40:20 EDT 2015


     [ https://issues.jboss.org/browse/JBDS-3371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Denis Golovin resolved JBDS-3371.
---------------------------------
    Resolution: Rejected


Reported problem is not related to development in JBDS or Eclipse JDT.  It is rather runtime issue. You probably need to debug your JNLP application and inspect what ServiceManager.lookup() method returned for javax.jnlp.FileOpenService.

Here is a link with some details http://stackoverflow.com/questions/686061/how-can-i-debug-applications-under-java-web-start-jnlp.

> The method openFileDialog(null, null) is undefined for the type FileOpenService
> -------------------------------------------------------------------------------
>
>                 Key: JBDS-3371
>                 URL: https://issues.jboss.org/browse/JBDS-3371
>             Project: Developer Studio (JBoss Developer Studio)
>          Issue Type: Bug
>         Environment: JBoss Developer Studio Version: 8.0.2.GA
>            Reporter: Ludumo Sankobe
>
> Im getting "The method openFileDialog(null, null) is undefined for the type FileOpenService" error wen trying to run the code bellow.:
> {code}
> package com.hrtrust.ps.scanner;
> // add javaws.jar to the classpath during compilation
> import javax.jnlp.FileOpenService;
> import javax.jnlp.FileSaveService;
> import javax.jnlp.FileContents;
> import javax.jnlp.ServiceManager;
> import javax.jnlp.UnavailableServiceException;
> import java.io.*;
> import javax.jnlp.ExtendedService;
> public class FileHandler {
>     static private FileOpenService fos = null;
>     static private FileSaveService fss = null;
>     static private FileContents fc = null;
>     static private ExtendedService exs = null;
>     // retrieves a reference to the JNLP services
>     private static synchronized void initialize() {
>         if (fss != null) {
>             return;
>         }
>         try {
>             fos = (FileOpenService) ServiceManager.lookup("javax.jnlp.FileOpenService");
>             fss = (FileSaveService) ServiceManager.lookup("javax.jnlp.FileSaveService");
>             exs = (ExtendedService) ServiceManager.lookup("javax.jnlp.ExtendedService");         
>             
>         } catch (UnavailableServiceException e) {
>             fos = null;
>             fss = null;
>             exs = null;
>         }
>     }
>     public static FileContents getDLL(File dllFile) {
>       initialize();
>       try {
>         fc = exs.openFile(dllFile);
>       } catch (IOException ioe) {
>             ioe.printStackTrace(System.out);
>             return null;
>         }
>       return fc;
>     }
>     // displays open file dialog and reads selected file using FileOpenService
>     public static String open() {
>         initialize();
>         try {
>             fc = fos.openFileDialog(null, null);
>             return readFromFile(fc);
>         } catch (IOException ioe) {
>             ioe.printStackTrace(System.out);
>             return null;
>         }
>     }
>     // displays saveFileDialog and saves file using FileSaveService
>     public static void save(String txt) {
>         initialize();
>         try {
>             // Show save dialog if no name is already given
>             if (fc == null) {
>                 fc = fss.saveFileDialog(null, null,
>                         new ByteArrayInputStream(txt.getBytes()), null);
>                 // file saved, done
>                 return;
>             }
>             // use this only when filename is known
>             if (fc != null) {
>                 writeToFile(txt, fc);
>             }
>         } catch (IOException ioe) {
>             ioe.printStackTrace(System.out);
>         }
>     }
>     // displays saveAsFileDialog and saves file using FileSaveService
>     public static void saveAs(String txt) {
>         initialize();
>         try {
>             if (fc == null) {
>                 // If not already saved. Save-as is like save
>                 save(txt);
>             } else {
>                 fc = fss.saveAsFileDialog(null, null, fc);
>                 save(txt);
>             }
>         } catch (IOException ioe) {
>             ioe.printStackTrace(System.out);
>         }
>     }
>     private static void writeToFile(String txt, FileContents fc) throws IOException {
>         int sizeNeeded = txt.length() * 2;
>         if (sizeNeeded > fc.getMaxLength()) {
>             fc.setMaxLength(sizeNeeded);
>         }
>         BufferedWriter os = new BufferedWriter(new OutputStreamWriter(fc.getOutputStream(true)));
>         os.write(txt);
>         os.close();
>     }
>     private static String readFromFile(FileContents fc) throws IOException {
>         if (fc == null) {
>             return null;
>         }
>         BufferedReader br = new BufferedReader(new InputStreamReader(fc.getInputStream()));
>         StringBuffer sb = new StringBuffer((int) fc.getLength());
>         String line = br.readLine();
>         while (line != null) {
>             sb.append(line);
>             sb.append("\n");
>             line = br.readLine();
>         }
>         br.close();
>         return sb.toString();
>     }
> }
> {code}
> NB. fc = fos.openFileDialog(null, null); is the line that gives an error. (FileOpenService)....FileSaveService and FileContents works just fine.



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the jbosstools-issues mailing list