2012-06-13 4 views
2

У меня есть пример приложения, которое работает на моей локальной машине с помощью Netbeans с GlassFish. Я получил большую помощь от StackOverflow, который начал работу. Следующий шаг - попытаться развернуть его на реальном сервере. Я нашел, что могу попробовать его на EATJ, поэтому я использовал Netbeans для создания WAR-файла, и я загрузил WAR-файл. Она не работает, и я нашел следующее в одном из журналовFacesServlet не найден при развертывании

INFO: ContextListener: contextDestroyed() 
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet Faces Servlet as unavailable 
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /ww1 threw load() exception 
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701) 

я просто перезагрузил сервер Tomcat, так что я бы с чистого листа. Я могу видеть из штампа времени, что я синхронизирован. В INFO он говорит мне, что делает Faces Servlet недоступным. Поэтому неудивительно, что он не может найти класс, если он просто сделал его недоступным. Таким образом, когда я пытаюсь запустить приложение, он терпит неудачу.

Что я не понимаю, так это то, почему оно решило сделать его недоступным в первую очередь и что я могу с этим поделать.

В Netbeans на моей локальной машине я использую GlassFish и на EATJ Tomcat используется. Что-то встроено в файл WAR, который может заставить его не работать на Tomcat? Трудно поверить, но, может быть. Я использую jsf 2.0 с файлами, если это имеет значение.

Я никогда не запускал Tomcat на своей локальной машине, так как GlassFish поставлялся в комплекте с Netbeans, и он работал отлично. Может быть, мне нужно загрузить Tomcat на моем локальном компьютере, чтобы проверить его? Я не знаю, что думать, поэтому мне нужно попросить совета.

P.S. Я помню, что я добавил glassfish-web.xml, чтобы удалить раздражающее предупреждение. Линия, добавленная мной, была

<parameter-encoding default-charset="UTF-8"/> 

Возможно, мне нужно удалить glassfish-web.xml? С другой стороны, что это связано с тем, что FacesServlet недоступен? Проблема кажется глубже.

ответ

8

Glassfish поставляется в комплекте с jsf libs. Томкат этого не делает. Таким образом, вам нужно либо поставить jsf libs в tomcat libs, либо добавить их в свой военный файл при создании проекта.
Вы можете скачать jsf here.

+0

Это то, что я называю очень хорошим ответом. Я хотел проверить его, прежде чем отвечать, и это работает! Мой сайт запущен. Я принял подход добавления jsf к моему файлу войны, и он решает проблему. –

Смежные вопросы