Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проверить работаспособность апплета? 
:(
    Опции темы
tagirhamon
  Дата 11.4.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

Объясните пожалуйсто как и куда надо поместить (на сервере) апплет читающий данные из XML файла!!! Апплет на JBuildere работает правильно.  smile  smile


PM MAIL   Вверх
Goliath
Дата 11.4.2006, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



Где на сервере размещать апплет не имеет значение просто на желаемой html страницы нужно вставить следующий код:
Код

<applet code=myClass.class width=400 height=400></applet>

Если у тебя множество классов, то советовал бы тебе поместить их в jar архив. По поводу xml я думаю, у тебя возникнет проблема, что апплет его ни читает, если я буду прав выложи кусок кода, где твой апплет читает xml файл.

--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tagirhamon
Дата 11.4.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

      Вот код который читает из XML файла



Код

     void button1_actionPerformed(ActionEvent e) {
      PARSE();
  }

  public void PARSE()  {
    Document document=null;

         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setValidating(false);
         factory.setNamespaceAware(true);
         factory.setIgnoringElementContentWhitespace(true);
         try
         {
             DocumentBuilder builder = factory.newDocumentBuilder();
             document = builder.parse(new FileInputStream(var0));
         }

         catch (Exception ex)
         {
              text.append("Input/Output error while processing input stream with XML file!");
         }
          printDomTree(document);



  }





  public void printDomTree(Document doc)
   {

   NodeList list = doc.getElementsByTagName("questions");
    int n=0;
    Node thisnode=list.item(1);
   NodeList list2=thisnode.getChildNodes();
 for (int i=1;i<11;i=i+2) {
   Node thisnode2 = list2.item(i);
   String str2 = thisnode2.getFirstChild().getNodeValue();
    text.append(str2+"\n");
 }
 

      }


PM MAIL   Вверх
LSD
Дата 11.4.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



FileInputStream будет читать файл с локального диска, а не с сервера. Чтобы читать файл с сервера надо делать так:
Код
URL url = new URL(getCodeBase() + var0);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
document = builder.parse(conn.getInputStream());
conn.disconnect();



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Goliath
Дата 11.4.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



Цитата

Методы класса URL
Рассмотрим самые интересные методы, определенные в классе URL.

Метод openStream
Метод openStream позволяет создать входной поток для чтения файла ресурса, связанного с созданным объектом класса URL:

public final InputStream openStream();
Для выполнения операции чтения из созданного таким образом потока вы можете использовать метод read, определенный в классе InputStream (любую из его разновидностей).

Данную пару методов (openStream из класса URL и read из класса InputStream) можно применить для решения задачи получения содержимого двоичного или текстового файла, хранящегося в одном из каталогов сервера Web. Сделав это, обычное приложение Java или аплет может выполнить локальную обработку полученного файла на компьютере удаленного пользователя.

Метод getContent
Очень интересен метод getConten. Этот метод определяет и получает содержимое сетевого ресурса, для которого создан объект URL:

public final Object getContent();
Практически вы можете использовать метод getContent для получения текстовых файлов, расположенных в сетевых каталогах.

К сожалению, данный метод непригоден для получения документов HTML, так как для данного ресурса не определен обработчик соедржимого, предназначенный для создания объекта. Метод getContent не способен создать объект ни из чего другого, кроме текстового файла.

Данная проблема, тем не менее, решается очень просто - достаточно вместо метода getContent использовать описанную выше комбинацию методов openStream из класса URL и read из класса InputStream.

Метод getHost
С помощью метода getHost вы можете определить имя узла, соответствующего данному объекту URL:

public String getHost();
Метод getFile
Метод getFile позволяет получить информацию о файле, связанном с данным объектом URL:

public String getFile();
Метод getPort
Метод getPortt предназначен для определения номера порта, на котором выполняется связь для объекта URL:

public int getPort();
Метод getProtocol
С помощью метода getProtocol вы можете определить протокол, с использованием которого установлено соединение с ресурсом, заданным объектом URL:

public String getProtocol();
Метод getRef
Метод getRef возвращает текстовую строку ссылки на ресурс, соответствующий данному объекту URL:

public String getRef();
Метод hashCode
Метод hashCode возвращает хэш-код объекта URL:

public int hashCode();
Метод sameFile
С помощью метода sameFile вы можете определить, ссылаются ли два объекта класса URL на один и тот же ресурс, или нет:

public boolean sameFile(URL other);
Если объекты ссылаются на один и тот же ресурс, метод sameFile возвращает значение true, если нет - false.

Метод equals
Вы можете использовать метод equals для определения идентичности адресов URL, заданных двумя объектами класса URL:

public boolean equals(Object obj);
Если адреса URL идентичны, метод equals возвращает значение true, если нет - значение false.

Метод toExternalForm
Метод toExternalForm возвращает текстовую строку внешнего представления адреса URL, определенного данным объектом класса URL:

public String toExternalForm();
Метод toString
Метод toString возвращает текстовую строку, представляющую данный объект класса URL:

public String toString();
Метод openConnection
Метод openConnection предназначен для создания канала между приложением и сетевым ресурсом, представленным объектом класса URL:

public URLConnection openConnection();
Если вы создаете приложение, которое позволяет читать из каталогов сервера Web текстовые или двоичные файлы, можно создать поток методом openStream или получить содержимое текстового ресурса методом getContent.

--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tagirhamon
  Дата 13.4.2006, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

      Спасибо за ответы.
      Еще вопрос:
          1. Обязательно апплет читающий из XML файла запускать через Веб-сервер?
          2. Апплет прочтет из XML,  если запускать через Веб-сервер установленный на локальном компьютере (без сети)? Если да как это сделать?
            smile
     


Это сообщение отредактировал(а) tagirhamon - 13.4.2006, 00:25
PM MAIL   Вверх
LSD
Дата 13.4.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(tagirhamon @ 13.4.2006, 01:23 Найти цитируемый пост)
1. Обязательно апплет читающий из XML файла запускать через Веб-сервер?

Апплет не запускается через веб сервер, он загружается с веб сервера.

Цитата(tagirhamon @ 13.4.2006, 01:23 Найти цитируемый пост)
2. Апплет прочтет из XML,  если запускать через Веб-сервер установленный на локальном компьютере (без сети)?

Да.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tagirhamon
Дата 15.4.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

Пробовал через IIS все равно не читает (ругается -  java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read))

PM MAIL   Вверх
LSD
Дата 15.4.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



На какой твой код выдается эта ошибка?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tagirhamon
  Дата 15.4.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

    Смысле ? smile

PM MAIL   Вверх
Goliath
Дата 15.4.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



В смысле на какую строку в коде! Выложи код и полный текст ошибки.
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tagirhamon
Дата 16.4.2006, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Код
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.URLConnection;



public class ReadXML extends Applet implements ActionListener{
Button Button1;
TextArea area1;

public void init()  {
setLayout(null);
area1=new TextArea();
area1.setBounds(new Rectangle(10, 420, 620, 140));
area1.setBackground(Color.white);
add(area1);

Button1=new Button("Read");
Button1.addActionListener(this);
Button1.setBounds(new Rectangle(800, 450, 60, 25));
add(Button1);
}

public void actionPerformed (ActionEvent e) {

if (e.getSource()==Button1){
  
  ReadXML();
  }
}


public void ReadXML()    {
 
Document document = null;
try {
  DocumentBuilderFactory dbf =  DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  URL url = new URL("http://OwnServer/Sample.xml");
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  document = db.parse(conn.getInputStream());
  conn.disconnect();
  }
catch (Exception e)
  {
    area1.append(e.toString());
  }
 printDomTree(document);
}

public void printDomTree(Document doc) {

NodeList list = doc.getElementsByTagName("questions");
Node thisnode=list.item(1);
NodeList list2=thisnode.getChildNodes();
for (int i=1;i<11;i=i+2) {
 Node thisnode2 = list2.item(i);
 String str2 = thisnode2.getFirstChild().getNodeValue();
 area1.append(str2+"\n");
 }
}

}


Цитата

После нажатия кнопки в area1 выводится  java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read))

 Java Console   выводится -

  java.lang.NullPointerException
    at ReadXML.printDomTree(ReadXML.java:67)
    at ReadXML.ReadXML(ReadXML.java:62)
    at ReadXML.actionPerformed(ReadXML.java:42)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

При запуске на JBuilder -е  апплета с таким кодом работает.

  
PM MAIL   Вверх
Goliath
Дата 16.4.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



У тебя  xml файл только для чтения, я прав? Если я права поменяй права доступа к xml файлу  
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
LSD
Дата 16.4.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



1. Методы в Java принято называть с маленькой буквы и уж тем более не следует называть метод как конструктор! Код конечно скомпилируется, но другие люди могут его понять не правильно, это потенциальный источник ошибок!
2. У тебя идет вывод ошибок в area1, туда какие нибудь ошибки пишутся?
3. Номера строк соответсвуют, т.е. 67 строка в листинге соответсвует 67 у тебя в приложении? 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tagirhamon
Дата 17.4.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

     2.  в area1 выводится  java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read))
     3. Да, соответствует
 
PM MAIL   Вверх
LSD
Дата 17.4.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Замени:
Код
catch(Exception e)    
{    
  area1.append(e.toString());    
}

на 
Код
catch(Exception e)    
{    
  e.printStackTrace();
}

и напиши что тебе будет выдано на консоль (похоже у тебя апплет не может загрузить XML парсер). 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
tagirhamon
Дата 19.4.2006, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



 smile 
         Вот что Java Console вывел:

Код
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
    at java.lang.System.getProperty(Unknown Source)
    at org.apache.crimson.parser.Parser2.init(Unknown Source)
    at org.apache.crimson.parser.Parser2.parse(Unknown Source)
    at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)
    at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    at ReadXML.ReadXML(ReadXML.java:55)
    at ReadXML.actionPerformed(ReadXML.java:42)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

java.lang.NullPointerException
    at ReadXML.printDomTree(ReadXML.java:68)
    at ReadXML.ReadXML(ReadXML.java:63)
    at ReadXML.actionPerformed(ReadXML.java:42)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)


 smile   

Это сообщение отредактировал(а) tagirhamon - 24.4.2006, 17:18
PM MAIL   Вверх
Goliath
Дата 19.4.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



У тебя XML лежит на UNIX сервере? 
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tagirhamon
Дата 19.4.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



Цитата

 Нет, XML лежит  на Microsoft® Internet Information Services (IIS) 
 
PM MAIL   Вверх
Goliath
Дата 19.4.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



Один из вариантов (правда он мало вероятен, но у меня, когда-то в этом была трабла). Проверь права доступа к файлу на сервере если это Microsoft, то нужно проверит имеет ли права редактировать этот файл вообще кто-то. 
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tagirhamon
Дата 25.4.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.2.2006
Где: г. Казань

Репутация: нет
Всего: нет



А где нужно установить эти права доступа? (Подробнее если можно smile ) 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.