argon bulletin board
Факултети => Факултет по математика и информатика => Темата е започната от: Jack Johnson в 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-а на контейнера :) ? Или някой по-лесен?!
-
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.
-
Не е 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 директивата.