Momenteel ben ik bezig met het ontwikkelen van een Applet die bedoeld is om vanaf een lokale bron te worden geladen (dus NIET via een pagina op een externe webserver). In het geval van de meest simpele opstelling gebeurt het volgende:
1. Applet starten vanuit 'c:\applet.html'. Dit bestand wordt dus lokaal geopend met een webbrowser.
2. De Applet doet iets en schrijft het resultaat weg naar 'c:\result.html'.
3. De Applet roept showDocument() aan om het naar de aangemaakte resultatenpagina te browsen:
showDocument(new URL("file://C:/result.html"));
Dit werkt perfect. Echter, een probleem ontstaat wanneer ik het bestand 'applet.html' en de bijbehorende Applet plaats op een netwerkschijf (een schijf anders dan C). Dan gebeurt het volgende:
1. Applet starten vanuit 'z:\applet.html'.
2. De Applet doet iets en schrijft het resultaat (succesvol) weg naar 'c:\result.html'.
3. De aanroep met showDocument die nu volgt resulteert in niets. Er wordt geen foutmelding (in de Java console) gegeven en 'applet.html' blijft zichtbaar. Kennelijk wordt de showDocument aanroep nu genegeerd (waarschijnlijk door de browser, omdat de URL aanroep door showDocument wordt doorgegeven aan de browser om het af te handelen).
Dit zelfde probleem doet zich verder ook voor wanneer de zaak op een CD-ROM wordt gebrand en de Applet daar vanaf wordt geladen (waarbij het resultaat uiteraard nog steeds wordt weggeschreven naar de C schijf). Na wat zoeken op het internet vond ik een mogelijke oplossing, door de aanroep met showDocument op de volgende manier uit te voeren:
showDocument(new URL("file://MACHINE_NAAM/C$/result.html"));
(MACHINE_NAAM kan ook localhost zijn.)
Het bestand wordt op deze manier dus aangeroepen via het Windows netwerk en dit resulteert in een werkende Applet, maar... alleen wanneer er een netwerkverbinding is en dat is nu net het probleem. Het geheel moet kunnen werken op een lokaal systeem, vanaf een CD-ROM, zonder netwerkverbinding.
De hamvraag:
Weet iemand een oplossing voor dit probleem? Hoe kan ik er voor zorgen dat showDocument werkt met het file-protocol waarbij deze een bestand aanroept op een andere schijf (C schijf) dan de schijf (CD-ROM) van waar de Applet wordt geladen?
1. Applet starten vanuit 'c:\applet.html'. Dit bestand wordt dus lokaal geopend met een webbrowser.
2. De Applet doet iets en schrijft het resultaat weg naar 'c:\result.html'.
3. De Applet roept showDocument() aan om het naar de aangemaakte resultatenpagina te browsen:
showDocument(new URL("file://C:/result.html"));
Dit werkt perfect. Echter, een probleem ontstaat wanneer ik het bestand 'applet.html' en de bijbehorende Applet plaats op een netwerkschijf (een schijf anders dan C). Dan gebeurt het volgende:
1. Applet starten vanuit 'z:\applet.html'.
2. De Applet doet iets en schrijft het resultaat (succesvol) weg naar 'c:\result.html'.
3. De aanroep met showDocument die nu volgt resulteert in niets. Er wordt geen foutmelding (in de Java console) gegeven en 'applet.html' blijft zichtbaar. Kennelijk wordt de showDocument aanroep nu genegeerd (waarschijnlijk door de browser, omdat de URL aanroep door showDocument wordt doorgegeven aan de browser om het af te handelen).
Dit zelfde probleem doet zich verder ook voor wanneer de zaak op een CD-ROM wordt gebrand en de Applet daar vanaf wordt geladen (waarbij het resultaat uiteraard nog steeds wordt weggeschreven naar de C schijf). Na wat zoeken op het internet vond ik een mogelijke oplossing, door de aanroep met showDocument op de volgende manier uit te voeren:
showDocument(new URL("file://MACHINE_NAAM/C$/result.html"));
(MACHINE_NAAM kan ook localhost zijn.)
Het bestand wordt op deze manier dus aangeroepen via het Windows netwerk en dit resulteert in een werkende Applet, maar... alleen wanneer er een netwerkverbinding is en dat is nu net het probleem. Het geheel moet kunnen werken op een lokaal systeem, vanaf een CD-ROM, zonder netwerkverbinding.
De hamvraag:
Weet iemand een oplossing voor dit probleem? Hoe kan ik er voor zorgen dat showDocument werkt met het file-protocol waarbij deze een bestand aanroept op een andere schijf (C schijf) dan de schijf (CD-ROM) van waar de Applet wordt geladen?
[ Voor 15% gewijzigd door Verwijderd op 17-05-2006 13:09 ]