![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
azalia |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
ну вот, а я надеялась что с ними не придется мучится, неужели без них никак? думала, что мне придется только запросить из базы нужные данные с использованием xpath и вывести полученные данные на печать, разве sqlxml не компенсирует все эти затраты на парсинг? зачем его тогда создали...
хорошо попробую так, если места хватит на виртуальной машине... Это сообщение отредактировал(а) azalia - 20.5.2015, 22:55 |
||||
|
|||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Я не слишком хорошо знаю MSSQL, так что возможно имеются средства базы, позволяющие запрос по xpath.
|
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
А эта ошибка о чем говорит? Не определен такой объект?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 5 Всего: 538 |
Не импортирован. Нормальная IDE сразу покажет такую ошибку и предложит пути решения. -------------------- 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. |
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Установила NetBeans 8 + Tomcat 8
Проект не выполняется, пишет ошибку:
Как с этим бороться? |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
1. Проверьте переменную окружающей среды CATALINA_HOME, на какой из серверов она указывает (запускаться должен только один) . Переменную TOMCAT_HOME лучше не использовать, так как она работает только в Windows.
2 Обязательно должна быть установлена переменная JAVA_HOME. Если вы используете версию 8, то и JAVA_HOME должна указывать на JDK версии 8. При использовании Tomcat не устанавливайте JDK в директорию с пробелом, типа "Program Files" 3. В файле CATALINA_HOME/conf/server.xml должен использоваться порт, который свободен. По умолчанию он хочет 8080. <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"/> Проверьте - не занят ли порт или просто замените. Я обычно использую номер 8089 4. Для запуска сервера через его административную утилиту manager, NetBeans'у нужен администратор. В файле CATALINA_HOME/conf/tomcatusers должна быть запись, похожая на: <tomcat-users> <user name="admin" password="password" roles=" manager,script-manager" /> ... </tomcat-users> 5. При работе через NetBeans не запускайте сервер вручную, а перейдите на закладку Services, разверните узел Servers, найдите пиктограмму кота и щелкнув по ней правой кнопкой мыши выберите Start. Проверьте предварительно, чтобы Tomcat не был ранее стартован другими средствами. Там же можно в диалоговом окошке настроить свойства сервера. Посмотрите, какой там номер порта и при необходимости измените. Останавливайте тоже оттуда. Это сообщение отредактировал(а) mbasil - 21.5.2015, 20:45 |
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Не получилось у меня подружиться с NetBeans. Все снесла, включая Tomcat 8.
Установила Eclipse и Tomcat 7. Заработало... Хотя тоже пришлось помучиться. |
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Не знаю, может я не совсем корректно задам вопрос, но мне не понятен один момент.
Почему при SAХ-парсинге в одном из примеров в параметре QNAME указывается не префикс, а имя тега? логичнее было бы там указывать префикс?
Это сообщение отредактировал(а) azalia - 22.5.2015, 13:45 |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Почему это логичнее? Элемент может быть любым из пространства имен, а префикс ведь придуман для создания уникального пространства имен, объединяющего набор элементов.
То есть QNAME это квалифицированное имя элемента, как один префикс может сказать - какой из них? Не забывайте тот факт, что мы имеем дело с методом обратного вызова (callback method) Это сообщение отредактировал(а) mbasil - 22.5.2015, 14:47 |
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Я понимаю что префикс нужен для уникальности... Значит, если бы у тега был префикс, то было бы тогда так? myHandler.startElement(null, "contact", "с:contact", null); При этом еще тогда первый null (namespaceURI) должен быть заполнен, типа: http://adcd.com/abcd и это будет соответствовать XML: <с:contact xmlns:с="http://adcd.com/abcd"> <c:name>Вася</c:name> <c:phone>12345</c:phone> </c:contact> Это сообщение отредактировал(а) azalia - 22.5.2015, 15:13 |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Префикс для Target Namespace можно опускать, поэтому то здесь Local Namt и Qualified Name совпадают, но если вы посмотрите документацию, то увидите, что в определенных ситуациях может быть опущено одно, или другое имя.
Это сообщение отредактировал(а) mbasil - 22.5.2015, 18:57 |
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
спасибо за подсказку, похоже это надо просто потренироваться... у меня уже назрел другой вопрос
![]() А как в сервлет вывести содержимое объекта типа xml на экран? Каждый раз когда я пытаюсь обратиться .getString(), выдаются ошибки: "Выполняется доступ к данным. Данные недоступны для этого столбца или параметра." или "Не удается считать данные из этого экземпляра, данные уже считаны"
Т.е. я так понимаю они уже прочитаны и распарсены (в консоли виден результат парсинга), а как теперь их вывести в браузер? или их надо предварительно куда-то еще записывать? Если я буду делать все без всяких парсеров и просто обращаться к результирующему набору sql, то данные в браузер через .getString() выводятся, т.е. автоматически извлекаются из столбца типа xml в виде обычных строк текста (причем если смотреть получаемый код html, то там остается некоторая информация о тегах) и все.... это ведь нельзя назвать xml-данными? Это сообщение отредактировал(а) azalia - 22.5.2015, 20:42 |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Все просто. Вы в своем обработчике, реализующем ContentHandler должны в методах startElement(), endElement() и characters() ПРИНЯТЬ данные, которые Вам засылает анализатор, я уже напоминал, что это callback методы. Кстати SAX подходит для обработки очень больших документов, структура которых полностью стабильна, так как надо много писать текста. Для небольших по размеру и относительно стабильных по структуре источников я предпочитаю JAXB, который был разработан для веб-сервисов и артефакты Java просто генерирует. В этом случае сложность не в написании програмы (как в SAX), а в том, чтобы разобраться с процессом генерирования и в сгенерированных классах.
|
|||
|
||||
azalia |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
А для меня как-то пока сложно
![]()
Так наверно будет не совсем правильно, да? Если реализовывать методы через обычные java-классы (в зависимости от целей обработки для каждого метода пусть будет отдельный java-класс), то снова вопрос как передать результат обработки в сервлет? Или на каждую кнопку вызова (на клиенте) делать отдельный сервелет с отдельной функциональностью? Под кнопкой вызова я подразумеваю, чтобы сначала нажималась кнопка "получить данные", потом когда получаешь данные давалась возможность изменить данные (добавить или удалить - 2 кнопки). Надо сюда подключать еще работу с сессиями? Выход из этого какой? Примерчика нет никакого? У меня по отдельности вроде бы еще получается что-то сделать, а все вместе соединить не могу. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Настоятельно предлагаю все-таки для каждого вопроса открывать новый топик - может вам бы и другие помогли, но продираться сквозь все страницы и пытаться найти вопрос очень неудобно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |