Есть имя хоста test.mydomain.com
. Вбиваю его в адресную строку, попадаю в панель управления Tomcat.
На томкате развернуто приложение и по адресу localhost/test/
оно запускается. Приложение развернуто в локальной папке webapps/test
Теперь хочу, чтобы при обращении к хосту test.mydomain.com
перебрасывало на мое приложение. Добавляю в server.xml в секцию <Engine>
<Host name="test.mydomain.com" appBase="webapps/test"
unpackWARs="true" autoDeploy="true">
<Alias>www.test.mydomain.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
И получаю в браузере
Message Not found
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
А в логе test_access_log
надпись
xxx.xxx.xxx.xxx - - [20/Sep/2019:16:07:39 +0200] "GET / HTTP/1.1" 404 1077
Tomcat 9.0.7
Что я делаю не так?
Update
А обращение к www.test.mydomain.com
выбрасывает по прежнему на главную страницу томката
Update2
Добавил в <Host>
параметр
<Context path="" docBase="${catalina.base}/webapps/test"
debug="0" reloadable="true"/>
все почти заработало. Кроме одного момента.
Вот мой web.xml
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
metadata-complete="false">
<display-name>Test Web Application</display-name>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/css/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/*</url-pattern>
</servlet-mapping>
</web-app>
И определены у меня два таких сервлета
@WebServlet(name = "Options", urlPatterns = "/js/options.js")
public class Options extends HttpServlet {
@WebServlet(name = "AggregateIconController", urlPatterns = "/images/points/agg.svg")
public class AggregateIconController extends HttpServlet {
т.е. connection point является подмножеством масок, определенных в web.xml.
При обращении к адресу test.mydomain.com/js/options.js
получаю ошибку 404. При обращении к localhost/test/js/options.js
страница возвращается
Все у меня заработало. Что сделал
Вынес приложения для этого хоста в отдельную папку, лежащую вне ${catalina.base}/webapps
об этом говорится в документации к томкату
In order to create virtual hosts, do the following:
В server.xml
оставил только строчки
<Host name="test.mydomain.com" appBase="test/webapps"
unpackWARs="true" autoDeploy="true">
<Alias>www.test.mydomain.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Исходный war переименовал в ROOT.war
и положил в папку test/webapps
. Tomcat его сам задеплоил в test/webapps/ROOT
По поводу сервлетов так и не понял. Для
@WebServlet(name = "Options", urlPatterns = "/js/options.js")
public class Options extends HttpServlet {
явно прописал в web.xml
<servlet-mapping>
<servlet-name>Options</servlet-name>
<url-pattern>/js/options.js</url-pattern>
</servlet-mapping>
(до этого такой подход все равно не работал).
А для
@WebServlet(name = "AggregateIconController", urlPatterns = "/images/points/agg.svg")
public class AggregateIconController extends HttpServlet {
все заработало само
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть метод, в котором алгоритм прописан через обычную итерацию по List:
От сервера с помощью Retrofit я получаю данные в виде:
Задача: На числовой прямой дан отрезок [3;8]Требуется определить, принадлежит ли точка x данному отрезку
Пытаясь подключится к localhost:3000 выдает ошибку (в названии), я пробовал подключать вебсокет по адресу "localhost:3000", "localhost", "3000", все кроме localhost выдает...