Скачал готовый качественный Maven-проект с github'а, удалось его запустить, но Tomcat относительно всех адресов отдает 404.
HTTP Status 404 – Not Found
Type Status Report
Message /
Description The origin server did not find a current representation for the
target resource or is not willing to disclose that one exists.
Apache Tomcat/9.0.6
Вот пример одного контроллера, HomePageController:
package com.core.newbie.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class HomePageController {
Logger logger = Logger.getLogger(HomePageController.class);
@RequestMapping("/index")
public String home() {
logger.info("loading home page"); // UPD: Ничего не пишется в лог отсюда.
return "index";
}
@RequestMapping("/")
public String home2() {
logger.info("loading home page"); // UPD: Ничего не пишется в лог отсюда.
return "index";
}
}
web.xml в WEB-INF:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ">
<display-name>Archetype Created Web Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
index.html там же: обычный html-файл.
spring-mvc.xml, в ресурсах (UPD: с изначальными комментариями - может, нужно что-то изменить?):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
<context:component-scan base-package="com.core.newbie.controller"/>
<mvc:annotation-driven/>
<!--<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">-->
<!--<property name="messageConverters">-->
<!--<list>-->
<!--<ref bean="mappingJacksonHttpMessageConverter"/>-->
<!--</list>-->
<!--</property>-->
<!--</bean>-->
<mvc:resources location="/WEB-INF/static/" mapping="/static/**" />
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".html" />
<!--<property name="templateMode" value="HTML5" />-->
<!-- Template cache is set to false (default is true). -->
<property name="cacheable" value="false" />
<property name="characterEncoding" value="UTF-8"/>
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=""/>
</bean>-->
<!--<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">-->
<!--<property name="contentNegotiationManager" ref="cnManager"/>-->
<!--<property name="viewResolvers">-->
<!--<list>-->
<!--<!– Used here for 'xml' and 'atom' views –>-->
<!--<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">-->
<!--<property name="order" value="1"/>-->
<!--</bean>-->
<!--<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">-->
<!--<property name="templateEngine" ref="templateEngine" />-->
<!--<property name="characterEncoding" value="UTF-8"/>-->
<!--<property name="order" value="2"/>-->
<!--<!– We need to set exclusions because Content Negotiation tries to resolve from –>-->
<!--<!– Thymeleaf even if a specific view bean (of a different class) is already –>-->
<!--<!– found, which might cause exceptions (e.g. ThymeleafView does not have a –>-->
<!--<!– 'marshaller' property). –>-->
<!--<property name="excludedViewNames" value="*.xml" />-->
<!--</bean>-->
<!--<!– Default viewClass: JSTL view (JSP with html output)–>-->
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
<!--<property name="prefix" value="/WEB-INF/"/>-->
<!--<property name="suffix" value=""/>-->
<!--<property name="order" value="3"/>-->
<!--</bean>-->
<!--</list>-->
<!--</property>-->
<!--</bean>-->
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
<property name="characterEncoding" value="UTF-8"/>
<!--<property name="order" value="2"/>-->
<!-- We need to set exclusions because Content Negotiation tries to resolve from -->
<!-- Thymeleaf even if a specific view bean (of a different class) is already -->
<!-- found, which might cause exceptions (e.g. ThymeleafView does not have a -->
<!-- 'marshaller' property). -->
<property name="excludedViewNames" value="*.xml" />
</bean>
<!--<bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">-->
<!--<property name="favorPathExtension" value="true"/>-->
<!--<property name="ignoreAcceptHeader" value="true"/>-->
<!--<property name="defaultContentType" value="text/html"/>-->
<!--<property name="mediaTypes">-->
<!--<map>-->
<!--<entry key="html" value="text/html" />-->
<!--<entry key="xml" value="application/xml" />-->
<!--<entry key="atom" value="application/atom+xml" />-->
<!--</map>-->
<!--</property>-->
<!--</bean>-->
</beans>
UPD: Метода public static void main почему-то нет. Где его создать в такой структуре? Как назвать файл и что в нем прописать? Может, в этом проблема.
Лог Tomcat при старте:
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener
log
INFO: Server version: Apache Tomcat/9.0.6
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener
log
INFO: Server built: Mar 5 2018 09:34:35 UTC
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 9.0.6.0
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jdk-9.0.4
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 9.0.4+11
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\Tim\eclipse- workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\apache-tomcat-9.0.6
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\Tim\eclipse- workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\apache-tomcat-9.0.6
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Tim\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
мар. 22, 2018 5:48:07 ПП org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1251
мар. 22, 2018 5:48:07 ПП org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk- 9.0.4\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\PostgreSQL\pg10\bin;C:\Users\Tim\AppData\Local\Microsoft\WindowsApps;C:\Users\Tim\AppData\Roaming\npm;;.]
мар. 22, 2018 5:48:08 ПП org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
мар. 22, 2018 5:48:10 ПП org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
мар. 22, 2018 5:48:10 ПП org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
мар. 22, 2018 5:48:10 ПП org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
мар. 22, 2018 5:48:10 ПП org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 14571 ms
мар. 22, 2018 5:48:12 ПП org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
мар. 22, 2018 5:48:12 ПП org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/9.0.6
мар. 22, 2018 5:48:21 ПП org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
мар. 22, 2018 5:48:21 ПП org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [529] milliseconds.
мар. 22, 2018 5:48:22 ПП org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
мар. 22, 2018 5:48:22 ПП org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
мар. 22, 2018 5:48:22 ПП org.apache.catalina.startup.Catalina start
INFO: Server startup in 11643 ms
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Обычно, когда новичкам рассказывают про преимущества Java, упоминают платформонезависимостьЯ правильно понял, что разработав Java-приложение,...
Делаю некую задачу, после отправки POST запроса приходит ответ, его я сохраняю в String-е и дальше хочу сохранить в PDF(результат POST запроса PDF файл)
Всем приветСделал аккордеон, но не могу понять, как сделать так, чтобы иконка ПЛЮС менялась на МИНУС при открытии блока, и обратно
Есть код на php с использованием Telegram APIКод должен работать таким образом, чтобы он брал значения, введенные в контактную форму на сайте, компилировал...