2012-06-18 5 views
0

JApplet 및 Java Web Start를 사용하여 텍스트 파일을 읽으려고 할 때 기본적으로 읽어야 할 사용자 데이터가있는 파일이 있습니다. 텍스트 파일은 웹 서버에 저장됩니다.Java 애플릿을 사용하여 텍스트 파일을 읽을 때

company.readCompanyFile("file:///C:/Users/Chris/Desktop/ArFile Clients/" + companyName + "/" 
        + companyName + ".cmp"); 

과 readCompanyFile 기능입니다 : 시작

BadFieldException[ The field <extension>href has an invalid value: C:\Users\Chris\Desktop\ArFile Clients,C:\Users\Chris\Desktop\ArFile Clients] 
    at com.sun.javaws.jnl.XMLUtils.getAttributeURL(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.getRequiredURL(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.handleResourceElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.access$800(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat$2$1.visitElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.visitChildrenElements(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat$2.visitElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.visitElements(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.buildResourcesDesc(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptorFromCache(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptorFromCache(Unknown Source) 
    at sun.plugin2.applet.JNLP2Manager.initialize(Unknown Source) 
    at sun.plugin2.main.client.PluginMain.initManager(Unknown Source) 
    at sun.plugin2.main.client.PluginMain.access$200(Unknown Source) 
    at sun.plugin2.main.client.PluginMain$2.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Error while initializing manager: BadFieldException[ The field <extension>href has an invalid value: C:\Users\Chris\Desktop\ArFile Clients,C:\Users\Chris\Desktop\ArFile Clients], bail out 

답변

3

자바 웹을 통해 텍스트 파일을 시작하는 동안 다음과 같은 오류가 발생합니다

public void readCompanyFile(String cname) 
{ 
    try 
    { 
     BufferedReader br = new BufferedReader(new FileReader(cname)); 

     name = br.readLine(); 
     quota = Float.parseFloat(br.readLine()); 

     String s; 
     while ((s = br.readLine()) != null) 
     { 
      String[] parts = s.split(":"); 

      metadataFields.add(parts); 
     } 

     br.close(); 
    } 
    catch(IOException e) 
    { 
     System.out.println("File does not exist, or has invalid format"); 
    } 
} 

여기에 코드입니다 웹 서버에 저장됩니다.

... 반면 애플릿은 클라이언트 컴퓨터에서 실행됩니다. 파일을 어떻게 읽습니까?

HTTP (예 : 서버의 애플릿 옆에 배치)를 통해 네트워크를 통해 액세스 할 수 있도록해야합니다.

또한 stacktrace는 코드와 관련이없는 것 같습니다. Webstart가 배치 디스크립터를 구문 분석하지 못한 것 같습니다 (아마도 서버의 디스크에있는 파일을 참조하기 때문일 수도 있습니다).

+0

고마워, 내가 그 시도를 줄 것이다! 내 웹 서버는 현재 컴퓨터에서 로컬로 실행되지만 주소는 입니다. file : /// C : /Users/Chris/Documents/NetBeansProjects/ArFile/dist/launch.html 이렇게하면 웹 사이트를 복사해야합니다. 질문에서이 로컬 디렉토리로 ArFile Clients 폴더를 만들고 파일 경로를 조정하여 http : // ArFile Clients + companyName + "/" + companyName + ".cmp"); ?? –

관련 문제