SpringMVC, Jetty emedded into jar

Sep 13, 2012 18:41

Hi, all.
Кто-нибудь обладает магией использования в SpringMVC запущенном из jar и jetty в качестве view - jsp страниц?
Пока получилось использовать только Velocity.

в такой конструкции не воспринимаются classpath: и получаю ошибки вида ( Read more... )

spring, jetty, jsp

Leave a comment

Comments 25

inot_unot September 13 2012, 10:40:59 UTC
Попробуйте в value="/views" указать путь от /WEB-INF

Reply

italler September 13 2012, 12:13:16 UTC
а если у меня jar, то как бы WEB-INF не предусмотрен, куда бы его сложить? И откуда отсчет идет?

Reply

bbseva September 13 2012, 12:54:58 UTC
Как это WEB-INF не предусмотрен? У вас web-app?

Вообще, jsp нельзя паковать в jar. Можно сделать pre-compile в .class и запаковать в jar; можно сделать taglib и упаковать в jar; можно с помощью мавена распаковывать jar и перекладывать в /web-inf

Reply

italler September 13 2012, 13:02:57 UTC
а html можно паковать в jar? Технически же можно, идеологически несоответствие?
у меня не web-app, у меня stand-alone, внутри которого запускается jetty, и у него один контроллер объявлен (в терминах SpringMVC, один класс помечен аннотацией @Controller). Если в контроллере писать что-то вроде

@RequestMapping(...)
public String formDisplay() {
return "form";
}

то прекрасно видно в браузере слово "form", но всю страницу же пихать сюда нельзя... Это для начала. А потом из jsp сразу бы объекты формировать и дальше их обрабатывать

Reply


bbseva September 13 2012, 13:28:13 UTC
Бин он там не хочет, а хочет путь ко view. Это идет из ServletRequest.getRequestDispatcher("view_resource")

http://stackoverflow.com/questions/8233886/jetty-embedded-spring-application

Reply

italler September 13 2012, 13:35:18 UTC
у меня и web.xml не предусмотрен, jetty server - это сам спринговый бин,

дальше идет куча свойств к нему,
и среди прочего в середине xml конфигурации есть объявление веб-контекстов
< bean class="org.eclipse.jetty.servlet.ServletHolder"
p:name="applicationServlet"
p:className="org.springframework.web.servlet.DispatcherServlet"
p:initOrder="1" >
< property name="initParameters" >
< map >
< entry key="contextConfigLocation" value="classpath:/application-config.xml,classpath:/application-context.xml"/ >
< /map >
< /property>
< /bean >

Reply

bbseva September 13 2012, 13:39:59 UTC
Месье знает толк в извращениях :)

А как вы хотите, чтобы Jetty знал о спринге, если у вас только спринг знает о Jetty?
Обычно же в ServletContext натягивается spring с контекстами. Соответственно и спринговые контексты имеют доступы к ServletContext'у, через которые все и резолвится типа servlet'ов, jsp и т.п.

Reply

italler September 13 2012, 13:45:43 UTC
jetty знает о спринге из
< property name="initParameters" >
< map >
< entry key="contextConfigLocation" value="classpath:/application-config.xml,classpath:/application-context.xml"/ >
< /map >
< /property >

в application-context.xml как раз описан веб-контекст :) в нем и можно остальные бины для jetty готовить

Reply


konsoletyper September 13 2012, 14:05:14 UTC

У меня в результате долгих ковыряний в интернете и исходниках jetty/apache jasper сформировался такой код:

Server server = new Server(8080 ( ... )

Reply

italler September 13 2012, 14:14:59 UTC
Velocity то сразу завелся, рекомендуете вернуться к нему и прекратить извращения?

Reply

Покажите с velocity конфигурацию ext_2382443 January 19 2014, 23:03:16 UTC
Покажите с velocity конфигурацию

Reply

Re: Покажите с velocity конфигурацию italler January 20 2014, 03:45:06 UTC
это дела давно минувших дней, предания старины глубокой

Reply


Leave a comment

Up