Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Сайт переехал, апплет не работает


Автор: Connie 17.3.2009, 23:13
Есть сайт на народе, апплет размещен на странице так:
Код

<applet code="lookout.MainFrame" archive="online/DCJonline.jar" width="100%" height="500">

      </applet>
     

все работало.

Переехал сайт на www.имя сайта.org

Старницы и структуру сайта переместил на новый ftp и при открытии этой страницы сыпятся exception
Код

load: class lookout.MainFrame not found.
java.lang.ClassNotFoundException: lookout.MainFrame
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:194)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:640)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2302)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
    at sun.applet.AppletPanel.run(AppletPanel.java:368)
    at java.lang.Thread.run(Thread.java:619)


что могло измениться? 

Автор: batigoal 17.3.2009, 23:59
Возможно, какие-то особенности операционки - не может доступиться до файла по адресу online/DCJonline.jar. Попробуй для эксперимента абсолютный путь задать.

И регистр символов в пути проверь на всякий случай.

Автор: LSD 18.3.2009, 12:53
Для начала просто вбей в браузере
Код

http://<адрес странички с апплетом>/online/DCJonline.jar

и посмотри, что произойдет. Если браузер начнёт качать jar, то с путями все ОК. Если выдаст 404 проверяй пути. Как заметил batigoal, начни с проверки регистра.

Автор: batigoal 18.3.2009, 14:21
Цитата(LSD @  18.3.2009,  13:53 Найти цитируемый пост)
Для начала просто вбей в браузере
http://<адрес странички с апплетом>/online/DCJonline.jar

Так у него же не от корня путь, а относительно страницы с апплетом.

Автор: LSD 18.3.2009, 14:49
Цитата(batigoal @  18.3.2009,  14:21 Найти цитируемый пост)
Так у него же не от корня путь, а относительно страницы с апплетом. 

Ну я и имел в виду:
Код

http://<сайт>/<путь до странички без имени самой странички>/online/DCJonline.jar

Автор: Connie 18.3.2009, 19:37
Цитата
Если браузер начнёт качать jar, то с путями все ОК

Качает.

Я страницу делал у себя дома под Linux и дома все работает из локальной папки, так что с регистром все в порядке

Но вот, что мне ответила поддержка хостера:

Цитата
У Вас в error log сервер пишет, что не может найти несколько файлов, например 
 /home/u39009/diacalcorg/www/lookout/MainFrame.class

Но папки то такой нет!!! Т.е. должно быть так
/www/online/lookout/MainFrame.class

Буду думать чего там написать в путях, а пока попробую положить jar просто в корень, т.е. не в каталог online а туда, где html лежит


Решил тупо скопировать эти два файла (страницу и апплет) с работающего сайта на новый, в результате получил такой иксепшн

Код

java.lang.IllegalArgumentException
    at java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:307)
    at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:247)
    at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:74)
    at com.sun.deploy.net.HttpDownloadHelper.decompressWrite(HttpDownloadHelper.java:229)
    at com.sun.deploy.net.HttpDownloadHelper.download(HttpDownloadHelper.java:134)
    at com.sun.deploy.cache.Cache$1.run(Cache.java:414)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.cache.Cache.downloadResourceToCache(Cache.java:393)
    at com.sun.deploy.cache.DeployFileOutputStream.close(DeployCacheHandler.java:368)
    at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(HttpURLConnection.java:2510)
    at java.io.BufferedInputStream.close(BufferedInputStream.java:451)
    at sun.plugin.PluginURLJarFileCallBack.downloadJAR(PluginURLJarFileCallBack.java:84)
    at sun.plugin.PluginURLJarFileCallBack.access$000(PluginURLJarFileCallBack.java:48)
    at sun.plugin.PluginURLJarFileCallBack$2.run(PluginURLJarFileCallBack.java:133)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.PluginURLJarFileCallBack.retrieve(PluginURLJarFileCallBack.java:120)
    at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:186)
    at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:50)
    at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:68)
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:189)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(CachedJarURLConnection.java:144)
    at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:90)
    at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:647)
    at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:538)
    at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:605)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:597)
    at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:559)
    at sun.misc.URLClassPath$3.run(URLClassPath.java:331)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.misc.URLClassPath.getLoader(URLClassPath.java:320)
    at sun.misc.URLClassPath.getLoader(URLClassPath.java:297)
    at sun.misc.URLClassPath.getResource(URLClassPath.java:167)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:155)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:632)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2302)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
    at sun.applet.AppletPanel.run(AppletPanel.java:368)
    at java.lang.Thread.run(Thread.java:619)

Я так понимаю не происходит распаковки архива. Интересно а почему такое может происходить? Попробую тогда залить в распакованном виде

Автор: Kangaroo 18.3.2009, 20:55

Цитата(Connie @  18.3.2009,  19:37 Найти цитируемый пост)
Но папки то такой нет!!! Т.е. должно быть так
/www/online/lookout/MainFrame.class

А урл какой?

Вот еще, если поможет:
Цитата

CODEBASE = codebaseURL
    This OPTIONAL attribute specifies the base URL of the applet--the directory that contains the applet's code. If this attribute is not specified, then the document's URL is used. 
ARCHIVE = archiveList
    This OPTIONAL attribute describes one or more archives containing classes and other resources that will be "preloaded". The classes are loaded using an instance of an AppletClassLoader with the given CODEBASE. 



Автор: Connie 18.3.2009, 21:11
видимо какие то глюки хостера, т.к. на локальном компе все работает, разместил в распакованном виде, на компе у меня дома все открылось, а на сервере в сети нет.

Спасибо за помощь, буду хостера добивать smile

Автор: batigoal 18.3.2009, 21:13
LSD, сорри, я был невнимателен.

Автор: Connie 18.3.2009, 21:19
Kangaroo, url к jar файлу такой
http://www.diacalc.org/online/DCJonline.jar

Сейчас создал online2 в котором разместил апплет в распакованном виде
таг следующий
Код

<applet code="lookout/MainFrame.class" codebase="online2" width="100%" height="500">

      </applet>
на моем компе все открылось, а при попытке открыть на сервере выскакивают разные какие то ошибки
Код


java.lang.NoClassDefFoundError: lookout/MainFrame$9
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    at java.lang.Class.newInstance0(Class.java:326)
    at java.lang.Class.newInstance(Class.java:308)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2302)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
    at sun.applet.AppletPanel.run(AppletPanel.java:368)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: lookout.MainFrame$9
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:194)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 10 more
java.lang.NoClassDefFoundError: lookout/MainFrame$9
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    at java.lang.Class.newInstance0(Class.java:326)
    at java.lang.Class.newInstance(Class.java:308)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2302)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
    at sun.applet.AppletPanel.run(AppletPanel.java:368)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: lookout.MainFrame$9
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:194)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 10 more

MainFrame$9 существует, я проверял, а в логе ошибок пишет вообще интересные вещи

Код

[Wed Mar 18 20:53:47 2009] [error] [client 83.234.225.249] File does not exist: /home/u39009/diacalcorg/www/online2/lookout/MainFramewww.class 


Так что грешу на хостера

Автор: batigoal 18.3.2009, 21:51
Мож, это какой-то темповый каталог, используемый JVM на этом хостинге?

Автор: ivg 19.3.2009, 01:24
Цитата(Connie @  18.3.2009,  21:37 Найти цитируемый пост)
Качает.

Цитата(Connie @  18.3.2009,  23:19 Найти цитируемый пост)
http://www.diacalc.org/online/DCJonline.jar

По этому URL открывается какой-то кривой jar да ещё и с Content-Type: text/plain;. Похоже что nginx закэшировал его как текст, внеся изменения, по видимому, в соответствии со своим представлением (кодировкой). Вобщем надо теребить хостера, чтобы поправили mime-type на .jar, ну и кэш, что ли, почистили (или как там это делается).

Автор: Connie 19.3.2009, 09:00
ivg, 
Цитата
По этому URL открывается какой-то кривой jar да ещё и с Content-Type: text/plain;. Похоже что nginx закэшировал его как текст, внеся изменения, по видимому, в соответствии со своим представлением 
Точно! А я и не проверил  smile 

Вот к примеру http://diacalc.narod.ru/online/DCJonline.jar с народа заливается рабочий smile Буду теребить, теперь понятнее куда smile

Автор: Connie 19.3.2009, 14:52
Спасибо, действительно после коррекции .htaccess все работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)