argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Tomcat server + default package???  (Прочетена 1159 пъти)

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!
Tomcat server + default package???
« -: 20.10.2005, 13:55:35 »

От къде да започна?

От тук!

За да работи дадено уеб приложение на Tomcat е необходимо то да се разгърне по някакъв начин на сървъра... тази част я прескачам и минавам нататък! Оказва се, че когато се опитвам да извикам клас чрез тага <% jsp:useBean ... %> ако класът ми се намира в default пакета сървъра дава грешка от рода на "Еди-кой-си тип cannot be resolved to a type". След много часове размишления и няколко теста установих, че ако само преместя класа в произволно избран от мен пакет, стига да не е подразбиращият се и всичко тръгва.

От директорийна гледна точка се оказва, че ако имам даден клас, който се намира в /WEB-INF/classes/, то този клас все едно не съществува за приложението, но ако класът е разположен например в /WEB-INF/classes/mypackage/ то класът е достъпен след като го извикам от пакета му.

Може би е от значение да спомена, че използвам Tomcat 5.5.12 и ми е интересно на какво се дължи този феномен?! Не съм единственият, който има проблеми с това, но всички решения са еквивалентни на моето, т.е. разполагане на класовете в отделни пакети. Само че е глупаво да не се спомене никъде в документацията този факт. И дали има някакъв начин да се "заобиколи" това ограничение по някакъв начин? Например да се пренапише classloader-а на контейнера :) ? Или някой по-лесен?!
« Последна редакция: 20.10.2005, 14:02:27 от Иван Давидов »
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die
Re: Tomcat server + default package???
« Отговор #1 -: 21.10.2005, 11:38:00 »

moje da e byg na 5.12 vij s nqkoi drug vij s 4.x che mi e interesno inache ami golqma rauta :) as pa vinagi si slagam neshtata v paketi pri polojenie che ima paketi i pri polojenie che vyrshtat tolkova mnogo udobna rabota e glupavo da ne se polzvat :> spored men de.
Активен

Phyz

  • Неактивен Неактивен
  • Публикации: 45
Re: Tomcat server + default package???
« Отговор #2 -: 21.10.2005, 12:38:30 »

Не е bug а е feature. Направи си един клас (примерно Blah) и още един (примерно blioh.Blioh). Blah ти е в default пакета а Blioh ти е в blioh. Сега направи едно поле в Blioh от тип Blah и пробвай да го компилираш... Сега се сети какво точно прави JSP компилатора и ще се сетиш защо не минава номера... Ако все още не се сещаш иди в $CATALINA_HOME/work/Catalina/localhost/{името на webb app чето}/org/apache/jsp и там ще го има твоето jsp направено на servlet. Виж му package директивата.
Активен
Quidquid latine dictum sit, altum sonatur.
Whatever is said in Latin sounds profound.