Java 在eclipse中的tomcat上运行maven项目时未找到请求资源404错误

Java 在eclipse中的tomcat上运行maven项目时未找到请求资源404错误,java,eclipse,spring,maven,tomcat,Java,Eclipse,Spring,Maven,Tomcat,我正在eclipse中的tomcat上运行基于maven的SpringREST应用程序。在tomcat服务器上运行项目时,显示未找到404请求资源。我从()导入了rest项目 my web.xml文件: <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.or

我正在eclipse中的tomcat上运行基于maven的SpringREST应用程序。在tomcat服务器上运行项目时,显示未找到404请求资源。我从()导入了rest项目

my web.xml文件:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


<display-name>roo-spring-data-jpa</display-name>

<description>Roo generated roo-spring-data-jpa application</description>


<!-- Enable escaping of form submission contents -->
<context-param>
    <param-name>defaultHtmlEscape</param-name>
    <param-value>true</param-value>
</context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
</context-param>

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter>
    <filter-name>HttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>HttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Handles Spring requests -->
<servlet>
    <servlet-name>roo-spring-data-jpa</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>roo-spring-data-jpa</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<session-config>
    <session-timeout>10</session-timeout>
</session-config>

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/uncaughtException</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>/resourceNotFound</location>
</error-page>
}


我在这里呆了一个小时,所以我把它贴在这里。谁能帮帮我吗。提前感谢。

这是一个常见问题。按照以下步骤操作:

  • 单击窗口>显示视图>服务器或右键单击中的服务器 “服务器”视图,选择“属性”

  • 双击服务器,打开服务器的概览屏幕。在 服务器位置选项卡,选择“使用Tomcat位置”

  • 保存配置并重新启动服务器


就这样

这个问题可能有多种原因

  • 部署的战争与请求的名称不一致
  • 当您使用spring时,web.xml中可能没有任何确认xml用作servlet
  • 您可能没有定义任何欢迎页面

  • 请共享您的web.xml和文件夹结构,以便更好地理解

    请尝试
    http://localhost:8080/spring-数据手册重置/index.jsp
    如果不起作用 然后 手动将
    spring data book reset.war
    文件复制到
    Tomcat/webapps/
    中,并以这种方式手动启动服务器-->进入终端中的
    Tomcat/bin
    并键入
    sh catalina.sh run
    。现在尝试使用您的url。它可能有用。
    如果不起作用,有时可能是您的配置问题。然后在此处发布您的
    web.xml
    ApplicationContextConfiguration.xml

    请检查您的构建路径条目是否正在导出到Tomcat。检查Web部署程序集中项目属性下的条目


    希望这有助于

    显示您的代码。@Jens。谢谢您的重播。我从[]导入了该项目。在这个项目中,我正在运行rest项目。我需要在这里发布哪个文件。@Jens。嘿,我每次运行我的项目时都会遇到相同的错误。你能帮我一下吗?我从这个URL下载了代码:[]即使我运行任何一个项目,它也会出现相同的错误。谢谢你的重播。当前在服务器位置选项卡设置为“使用工作空间元数据”,我无法将其更改为“使用tomcat安装”。当我点击“UseTomcat安装”时,它并没有选择它。在eclipse中删除服务器配置并添加一个新的服务器。然后你就可以编辑了。然后,你需要添加一个新的服务器。谢谢你的重播。因为它是SpringRESTJPA应用程序,所以我没有任何web.xml文件。你可以在这里查看我导入的项目。谢谢你的重播。我刚从git导入了代码。您可以在()检查我的代码。我从上面的链接导入了rest项目。很抱歉反应太晚。
      package com.oreilly.springdata.rest;
    
      import javax.persistence.EntityManagerFactory;
      import javax.sql.DataSource;
    
     import org.springframework.context.annotation.Bean;
     import org.springframework.context.annotation.ComponentScan;
     import org.springframework.context.annotation.Configuration;
     import       org.springframework.data.jpa.repository.config.EnableJpaRepositories;
    import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
     import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
     import org.springframework.orm.jpa.JpaTransactionManager;
     import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
      import org.springframework.orm.jpa.vendor.Database;
      import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
      import org.springframework.transaction.PlatformTransactionManager;
      import org.springframework.transaction.annotation.EnableTransactionManagement;
    
      /**
      * Spring JavaConfig configuration class to setup a Spring container   and    infrastructure components like a
    * {@link DataSource}, a {@link EntityManagerFactory} and a {@lin PlatformTransactionManager}.
    * 
    * @author Oliver Gierke
    */
     @Configuration
    @ComponentScan
    @EnableJpaRepositories
    @EnableTransactionManagement
     class ApplicationConfig {
    
    /**
     * Bootstraps an in-memory HSQL database.
         * 
     * @return
     * @see http 
     *      ://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/jdbc.html#jdbc-embedded-database
     *      -support
     */
    @Bean
    public DataSource dataSource() {
        EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
        return builder.setType(EmbeddedDatabaseType.HSQL).build();
    }
    
    /**
     * Sets up a {@link LocalContainerEntityManagerFactoryBean} to use Hibernate. Activates picking up entities from the
     * project's base package.
     * 
     * @return
     */
    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    
        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setDatabase(Database.HSQL);
        vendorAdapter.setGenerateDdl(true);
    
        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
        factory.setJpaVendorAdapter(vendorAdapter);
        factory.setPackagesToScan(getClass().getPackage().getName());
        factory.setDataSource(dataSource());
    
        return factory;
    }
    
    @Bean
    public PlatformTransactionManager transactionManager() {
    
        JpaTransactionManager txManager = new JpaTransactionManager();
        txManager.setEntityManagerFactory(entityManagerFactory().getObject());
        return txManager;
    }