Здравствуйте, FightUntilWeDie, Вы писали:
FUW>Собствено, скачал Spring 2.0.2, уже имеется J2EE SDK 1.4_03. Пишу на IDEA 6.0. При запуске примера с
FUW>Spring MVC step by step Part 1. Получаю самое банальное:
FUW>HTTP Status 404 — Servlet springapp is not available
FUW>Пытаюсь обратиться по адресу http://localhost:8080/springapp/hello.htm (hello.jsp — лежит в корне).
FUW>Заранее боагодарен за любую помошь весь мозг сломал.
Столько текста и при этом совершенно не описан процесс деплоя. Как догадатся что и куда было запаковано и как зупущено на сервере.
Servlet springapp is not available — вызывает подозрения что приложение задеплоилось в рутовый контекст, а в ссылке подразумевается что контекст springapp.
Попробуй, например, http://localhost:8080/hello.htm
Здравствуйте, FightUntilWeDie, Вы писали:
FUW>Так в примере написано было. Да мапинги я пробовал разные например: переименовать hello.jsp в .htm или пробовал поменять в web.xml: FUW>
1) Текст выше навервает на мысль что ты пытаеьшся разобратся в проблеме методом научного тыка. Вместо того чтобы размеренно почитать документацию по каждому из пунктов.
2) В том примере нигде не говорится откройте jsp и посмотрите как отработает ваш контроллер. Смысл в том что ты запрашиваешь hello.htm, контейнер находит сервлет ответсвенный на этот запрос. Сервлет диспатчит запрос контроллеру, а контроллер говорит какую вьюху использовать. А вот ViewResolver уже находит нужную JSP для ренддеринга.
Здравствуйте, FightUntilWeDie, Вы писали:
FUW>Проблема осталось только я теперь попробую ее формализовать более приближенно к документации производителя.
FUW>Пробуем мапить Spring'овый DispatcherServlet web.xml: FUW>
На JDK по идее завязно быть не должно — если только с шаблонами чего.
Да, вполне может быть проблема нахождения firstspring-servlet.xml (почему firstspring????, почему springfirst???) — такие проблемы у меня были, но решения тоже забылись ибо для проектов я использовал один и тот же шаблон.
Я не пойму, при всем уважении — если вы действительно хотите разобраться с проблемой — почему же вы упорно называете все по-своему? Я осознаю — это вещь необязательная. Я осознаю — должно работать и так. Понимаю, видимо хочется приложить творческую руку. Но в данном случае я бы продолжил пошагово приводить все к виду "абсолютно как в туториале" — и на каком-то шаге все бы волшебным образом "починилось" — и было бы понятно в чем ошибка — у меня этот туториал работал, но я всегда указывал ContextRoot. Вот потом — уже при работающем проекте — можно бы было все менять и делать что заблагорассудится, ибо этап поломки был бы как на ладони. И у вас наконец был бы шаблон для будущих проектов (и информация об ошибке) — и о подобных мелочах вы бы больше не задумывались — в J2EE есть и более серьезные проблемы. Подумайте, такие вещи — это трата вашего времени.
Если хотите, я достану найду вам пример в загашнике и пришлю вам в рабочем виде. А чтобы получить конкретный ответ по сути — надо все-таки привести все к виду "как надо", а не "как хочется".
Здраствуйте, следуюшая проблема. Никак не могу запустить простой пример Spring'а.
Собствено, скачал Spring 2.0.2, уже имеется J2EE SDK 1.4_03. Пишу на IDEA 6.0. При запуске примера с
public class SpringappController implements Controller
{
/** Logger for this class and subclasses */
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
logger.info("SpringappController - returning hello view");
return new ModelAndView("hello.jsp");
}
}
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, FightUntilWeDie, Вы писали:
FUW>>Собствено, скачал Spring 2.0.2, уже имеется J2EE SDK 1.4_03. Пишу на IDEA 6.0. При запуске примера с
FUW>>Spring MVC step by step Part 1. Получаю самое банальное:
FUW>>HTTP Status 404 — Servlet springapp is not available
FUW>>Пытаюсь обратиться по адресу http://localhost:8080/springapp/hello.htm (hello.jsp — лежит в корне).
FUW>>Заранее боагодарен за любую помошь весь мозг сломал.
B>Столько текста и при этом совершенно не описан процесс деплоя. Как догадатся что и куда было запаковано и как зупущено на сервере.
B>Servlet springapp is not available — вызывает подозрения что приложение задеплоилось в рутовый контекст, а в ссылке подразумевается что контекст springapp. B>Попробуй, например, http://localhost:8080/hello.htm
Да деплоется все в рут. В resources лежат index.jsp и hello.jsp и в src в дефалтном пакете класс контролера. Да по такому пути http://localhost:8080/hello.jsp, страница открывается (да, что то я совсем затупил), но на контролер управление не переходит.
Код страницы hello.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Example :: Spring Application</title></head>
<body>
<h1>Hello - Spring Application.</h1>
<h1><%request.getParameter("title");%></h1>
<p>Made by Crow.</p>
</body>
</html>
Код изменненый код контролера SpringappController:
ublic class SpringappController implements Controller
{
/** Logger for this class and subclasses */protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
logger.info("SpringappController - returning hello view");
return new ModelAndView("hello.jsp?title=" + "SpringappController - returning hello view");
}
}
Не title не выводит плюс на breakpoint'ы не приходит.
Здравствуйте, FightUntilWeDie, Вы писали:
B>>Попробуй, например, http://localhost:8080/hello.htm
FUW>Да деплоется все в рут. В resources лежат index.jsp и hello.jsp и в src в дефалтном пакете класс контролера. Да по такому пути http://localhost:8080/hello.jsp, страница открывается (да, что то я совсем затупил), но на контролер управление не переходит.
Так у тебя маппинг сервлета на *.html, для чего же ты hello.jsp открываешь?
Здравствуйте, Blazkowicz, Вы писали:
B>>>Попробуй, например, http://localhost:8080/hello.htm
FUW>>Да деплоется все в рут. В resources лежат index.jsp и hello.jsp и в src в дефалтном пакете класс контролера. Да по такому пути http://localhost:8080/hello.jsp, страница открывается (да, что то я совсем затупил), но на контролер управление не переходит.
B>Так у тебя маппинг сервлета на *.html, для чего же ты hello.jsp открываешь?
Так в примере написано было. Да мапинги я пробовал разные например: переименовать hello.jsp в .htm или пробовал поменять в web.xml:
Здравствуйте, Blazkowicz, Вы писали:
B>1) Текст выше навервает на мысль что ты пытаеьшся разобратся в проблеме методом научного тыка. Вместо того чтобы размеренно почитать документацию по каждому из пунктов. B>2) В том примере нигде не говорится откройте jsp и посмотрите как отработает ваш контроллер. Смысл в том что ты запрашиваешь hello.htm, контейнер находит сервлет ответсвенный на этот запрос. Сервлет диспатчит запрос контроллеру, а контроллер говорит какую вьюху использовать. А вот ViewResolver уже находит нужную JSP для ренддеринга.
Почти научным тыком. Второй день читаю документацию Spring in Action и Spring Reference Documentation. Решил попробовать простой пример сразу столкнулся с кучей проблем. Да в теории все хорошо и модель с 6 звеньями все забавно вот только запустить не могу. Спасибо за помошь буду клвыряться дальше.
Здравствуйте, FightUntilWeDie, Вы писали:
FUW>Второй день читаю документацию Spring in Action и Spring Reference Documentation. Решил попробовать простой пример сразу столкнулся с кучей проблем. Да в теории все хорошо и модель с 6 звеньями все забавно вот только запустить не могу. Спасибо за помошь буду клвыряться дальше.
Для начала неплохо бы освоится с сервлетами, веб приложениями и деплойментом вообще. Проблемы выше к Spring никакого отношения не имееют. Так что сарказм про забавные звенья можно было бы оставить при себе.
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, FightUntilWeDie, Вы писали:
FUW>>Второй день читаю документацию Spring in Action и Spring Reference Documentation. Решил попробовать простой пример сразу столкнулся с кучей проблем. Да в теории все хорошо и модель с 6 звеньями все забавно вот только запустить не могу. Спасибо за помошь буду клвыряться дальше.
B>Для начала неплохо бы освоится с сервлетами, веб приложениями и деплойментом вообще. Проблемы выше к Spring никакого отношения не имееют. Так что сарказм про забавные звенья можно было бы оставить при себе.
Было дело, когда все только начиналось, я этот же пакетик собирал. Но вот кстати конкретно с ним, насколько я помню, проблем не было .
Так вот — может я туплю и не помню уже ничего, тем более сейчас я не в кондиции, но посмотрите внимательно — это бросается в глаза — в шестом шаге туториала, web.xml:
имхо если вы попробуете ходить на http://localhost:8080/springfirst/* — возможно будет вам счастье — а то непонятно что сервлет у вас мониторит и вообще зачем вы это дело поменяли....
или извините если я глупости говорю, я сейчас ни в чем не уверен...
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, sir_shaman, Вы писали:
_>>или извините если я глупости говорю, я сейчас ни в чем не уверен...
B>Глупости говоришь. Имя сервлета не влияет на имя контекста, который предоставляет сервер.
Да, абсолютно верно. Мозг почти начисто забыл j2ee — без практики, прошу прощения. Но сердце помнит .
И этим сердцем я чую что проблема кроется где-то здесь .
Если деплой происходит в рут то любой запрос формата http://localhost:8080/*.htm должен вызвать DispatcherServlet. Далее по нотации нужно определить springfirst-servlet.xml.
<beans>
<!-- Прописываем SimpleUrlHandlerMapping, то есть теперь из всего множества http://localhost:8080/*.htm - DispatcherServlet будет диспатчить SpringappController'у при указании адреса http://localhost:8080/welcome.htm. Пробовал BeanNameUrlHandlerMapping такой строкой <bean name="/welcome.htm" class="root.SpringappController" /> (соответствено закоментировав SimpleUrlHandlerMapping). -->
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome.htm">springappController</prop>
</props>
</property>
</bean>
<!-- Создаем компанент Controler'а -->
<bean id="springappController" class="root.SpringappController" />
<!-- Создаем View Resolver теперь при указании в ModelAndView строки будет выглядеть так prefix+строка+suffix -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/welcome/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Остается сам класс контролера root.SpringappController:
package root;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
public class SpringappController implements Controller
{
/** Logger for this class and subclasses */protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
logger.info("SpringappController - returning hello view");
// Соответственно так как указали View Resolve будет генериться /welcome/ + hello + .jspreturn new ModelAndView("hello");
}
}
Так же созданы 2 страницы: index.jsp в корне указана в web-app как welcome-file и вторая hello.jsp в папке welcome.
HTTP Status 404 - Servlet springfirst is not available
type Status report
message Servlet springfirst is not available
description The requested resource (Servlet springfirst is not available) is not available.
Apache Tomcat/5.0.28
Далее пробуем создать обычный сервлет что бы проверить вообше их работоспособность web.xml:
Мое подозрение что DispatcherServlet не находит firstspring-servlet.xml из за этого все беды (использую JDK 1.4_03 может это как то сказывается). Кто с сталкивался с чем то подобным откликнитесь? Заранее признателен за помошь.
Здравствуйте, sir_shaman, Вы писали:
FUW>>Проблема осталось только я теперь попробую ее формализовать более приближенно к документации производителя.
FUW>>Пробуем мапить Spring'овый DispatcherServlet web.xml: FUW>>
_>На JDK по идее завязно быть не должно — если только с шаблонами чего.
_>Да, вполне может быть проблема нахождения firstspring-servlet.xml (почему firstspring????, почему springfirst???) — такие проблемы у меня были, но решения тоже забылись ибо для проектов я использовал один и тот же шаблон.
Потому что Spring будет искать сам <servlet-name>-servlet.xml это во всех примерах.
_>Я не пойму, при всем уважении — если вы действительно хотите разобраться с проблемой — почему же вы упорно называете все по-своему? Я осознаю — это вещь необязательная. Я осознаю — должно работать и так. Понимаю, видимо хочется приложить творческую руку. Но в данном случае я бы продолжил пошагово приводить все к виду "абсолютно как в туториале" — и на каком-то шаге все бы волшебным образом "починилось" — и было бы понятно в чем ошибка — у меня этот туториал работал, но я всегда указывал ContextRoot. Вот потом — уже при работающем проекте — можно бы было все менять и делать что заблагорассудится, ибо этап поломки был бы как на ладони. И у вас наконец был бы шаблон для будущих проектов (и информация об ошибке) — и о подобных мелочах вы бы больше не задумывались — в J2EE есть и более серьезные проблемы. Подумайте, такие вещи — это трата вашего времени.
Да сначала я перенес пример как он есть — он не работал. Все остальное с течение времени менялось. По документации не важно какие имена главное суть, если не работает по сути, хотелось бы знать почему где не подходит имя и самое главное почему оно не походит. Сечас написано я считаю "как надо". Dот не могу понять почему не работает. Сейчас изменил на исходные имена результат тот же проблема я думаю хитрее. Я пытался брать примеры без изменений не работает.
_>Если хотите, я достану найду вам пример в загашнике и пришлю вам в рабочем виде. А чтобы получить конкретный ответ по сути — надо все-таки привести все к виду "как надо", а не "как хочется".
Да был бы вам очень признателен за такой примерчик.
Решил проблему. Она возникала из за того что я подключал Spring библиотеки как Project libraries, а не просто в модуль.
You gotta do what you gotta do.
Re[2]: Hello World Servler Spring error
От:
Аноним
Дата:
16.07.09 06:49
Оценка:
Здравствуйте, FightUntilWeDie, Вы писали:
FUW>Решил проблему. Она возникала из за того что я подключал Spring библиотеки как Project libraries, а не просто в модуль.
а можно по подробнее, такая же проблема, уже устал ковыряться