Как можно разместить приложение Spring на сервере Apache?

Я знаю, что это долго, но, пожалуйста, потерпите меня ...

Я использую xubuntu. У меня есть весенний проект mvc под названием Fitness Tracker. Он имеет стандартную структуру каталогов. У меня также есть apache2 на моем компьютере, который я установил с помощью командной строки. Я создал файл с именем default1 внутри каталога сайтов, который содержит следующий код:

<VirtualHost *:80>
 ServerName east.example.org
 DocumentRoot /var/www/hello/FitnessTracker/src/main/webapp/WEB-INF/jsp  
<Directory /var/www/hello/FitnessTracker/src/main/webapp/WEB-INF/jsp>
Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
</Directory>
</VirtualHost>

Мой httpd.conf содержит следующий код

ServerName localhost     
DirectoryIndex hello.jsp

Кроме того, имя моего весеннего контроллера - Hello Controller, и он содержит следующий код: -

package com.pluralsight.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping(value="/greeting")
    public String sayHello(Model model)
{
        model.addAttribute("greeting", "Hello World");
        return "hello";
}
}

Теперь, когда я набираю east.example.org в адресной строке своего браузера, я получаю страницу hello.jsp, которая содержит код страницы hello.jsp (т.е. код Spring mvc вместе с кодом html).

Мое требование: когда я запускаю свой сервер apache и набираю east.example.org в адресной строке браузера, я хочу отобразить страницу Hello.html. Как это может быть сделано?? Обратите внимание, что страницы с именем welcome.html не существует. Но Spring позволяет нам направлять запрос на страницу hello.jsp при запросе страницы Hello.html.

P.S. Я использовал теги Spring на своей странице jsp. Как мне получить доступ к странице приветствия.html ??


person Annonymous programmer    schedule 13.03.2014    source источник
comment
@ Сантино 'Сонни' Корлеоне, я не знаю ........ Это требование моего клиента   -  person Annonymous programmer    schedule 13.03.2014


Ответы (2)


  • Apache - это веб-сервер.

  • Tomcat - это сервер приложений (контейнер сервлетов).

Apache не может размещать сервлеты, это можно сделать только с контейнерами сервлетов, такими как Tomcat, Jboss и т. Д.

См. Разница между HTTP-сервером Apache и Apache Tomcat?

person KingMaker    schedule 13.03.2014
comment
+ он всегда может добавить сервер apache перед котом в качестве обратного прокси - person tom; 13.03.2014

Я использовал tomcat для java-приложений. Использование Spring mvc с apache довольно сложно.

Вы настраиваете Tomcat для запуска приложения Spring (настроив web.xml), а затем настраиваете Tomcat для подключения к Apache с помощью mod-jk. Вы должны настроить файлы конфигурации apache, чтобы знать о mod-jk, и вы настроите mod-jk.conf (см. http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html)

Надеюсь это поможет

person Santino 'Sonny' Corleone    schedule 13.03.2014
comment
Думаю, я не совсем понял свой вопрос .... позвольте мне добавить некоторые детали. Я построил свой весенний проект mvc в eclipse, и я установил там сервер Tomcat. Если я пройду через tomcat, все в порядке ... появится страница welcome.html. Но то, что я хочу, - это без запуска сервера tomcat, который я хочу перейти к Hello.html, набрав соответствующий URL-адрес в адресной строке. Для этого я установил apache. Ты меня понял ?? - person Annonymous programmer; 13.03.2014
comment
но вы не можете использовать apache напрямую, вам нужно использовать tomcat и den использовать коннектор для подключения сервера apache ... проверьте мой ответ .... apache обычно используется для приложений php, а не java - person Santino 'Sonny' Corleone; 13.03.2014
comment
так что позвольте мне получить это ..... вы говорите, что я не могу напрямую использовать apache ........ мне нужно запустить мой tomcat извне (не внутри eclipse), а затем подключить его к apache, а затем хозяин ...... я прав ?? - person Annonymous programmer; 13.03.2014
comment
да, я чувствую себя так ... Я не пробовал java-приложения с apache, поэтому не могу предложить вам много ... но да, я чувствую, что вам нужно установить tomcat и den apache .. иначе вы могли бы подождать дополнительных предложений .. У меня нет jsp веб-приложение на ubuntu, но я только что установил jre и tomcat..dats it..и мое веб-приложение было запущено .. - person Santino 'Sonny' Corleone; 13.03.2014
comment
Спасибо за объяснение ....... Я хотел бы проголосовать за ваш ответ, но я думаю, что могут появиться и другие ответы. - person Annonymous programmer; 13.03.2014
comment
@PratikSharma, вы могли бы проголосовать за .. :) :) :) попробуйте поискать в гугле ... может быть больше способов - person Santino 'Sonny' Corleone; 13.03.2014
comment
Он прав. Вам необходимо запустить ваше приложение на Tomcat или другом контейнере сервлетов. Вы также можете установить Apache, например, если вы хотите получить доступ к своему приложению на другом порту, запросить балансировку нагрузки между несколькими контейнерами Tomcat, указать два доменных имени на два разных приложения и т. Д. - person Robert Balent; 13.03.2014