qq_21150865
qq_21150865
采纳率0%
2018-04-19 07:21

求助:ssm的maven项目tomcat插件启动成功,但是无法访问的问题!

5

问题描述:

springmvc+mybatis项目,tomcat插件成功启动后,访问报404的错误。

个人排查:
1.将其独立部署到tomcat服务器而不用tomcat插件可以成功启动并访问。
2.tomcat插件启动成功后,target下的classes目录下面没有配置文件,但是有class文件。buildpath中已经配置输出文件夹为target/classes,仍然无效。

tomcat插件配置:

        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                   <update>true</update> <!-- 热部署 -->
                    <charset>utf-8</charset> <!-- 设置字符集 -->
                    <uriEncoding>UTF-8</uriEncoding><!-- 设置uri编码 -->
                    <port>8080</port> <!-- 设置端口 -->
                    <path>/</path><!-- 设置默认访问应用的路径 -->
                </configuration>
            </plugin>
        </plugins>

前端控制器配置:

    <!-- 前端控制器 -->
    <!-- The front controller of this Spring Web application, responsible for 
        handling all application requests -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:springmvc/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map all requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

controller:

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/")
    public String hello() {
        return "index";
    }

    @RequestMapping("/user")
    @ResponseBody
    public List<User> getUserList() {
        List<User> list = userService.getUserList();
        return list;
    }
}

访问url:localhost:8080,正常应该跳转到index.jsp界面,实际输出:No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'springDispatcherServlet'

求助!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

11条回答

  • xwh1314 xwh1314 3年前

    pom.xml里面加上这段试试

      <build>
            <finalName>common-info</finalName>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.xml</include>
                        <include>**/*.properties</include>
                    </includes>
                </resource>
            </resources>
        </build>
    
    点赞 1 评论 复制链接分享
  • qq_21150865 qq_21150865 3年前

    找到原因了,把pom文件中的

    <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
            ```
            删掉,url便可以映射到controller方法了,但是又出现了一个新的问题,调用业务层和dao层报错`org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.wisdom.dao.UserMapper.selectByExample`,求问广大猿友如何解决?!
    
    点赞 评论 复制链接分享
  • yangguangniubi 一路阳光CCG 3年前

    如果你出现tomcat可以独立启动,也可以访问,但是部署在eclipse无法访问的话:
    双击tomcat,Server Locations选择第一个,如果是灰色的话右击删除tomcat,再重新添加tomcat就可以选择了

    点赞 评论 复制链接分享
  • qq_40448623 小獒爱洗澡 3年前

    是不是项目没有安装到maven的本地仓库?

    点赞 评论 复制链接分享
  • YouAreMy_Sunshine 老猫* 3年前
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--spingMVC的配置路径  -->
            <param-value>classpath:springmvc/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 拦截设置 -->
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
        在上面还可以加上这个
         <!-- 起始欢迎界面 -->
    <welcome-file-list>
        <welcome-file>/view/index.jsp</welcome-file>
    </welcome-file-list> 
    
    点赞 评论 复制链接分享
  • qq_21150865 qq_21150865 3年前

    启动后,target目录下的classes下没有配置文件,只有.class文件。

    点赞 评论 复制链接分享
  • u010472452 關於現在 3年前

    还有是否配置了扫描 controller

    点赞 评论 复制链接分享
  • u010472452 關於現在 3年前

    有报错吗?把运行结果贴一下

    点赞 评论 复制链接分享
  • wx2215589077 wx2215589077 3年前

    Tomcat端口改成8090

    点赞 评论 复制链接分享
  • qq_27026603 程序员阿军 3年前

    第一即使让dispatcherServlet的拦截加上后缀如:*.do;

    这样以jsp后缀的就不会别拦截了。

    第二个方法是在spring-servlet.xml中加入:

    mvc:default-servlet-handler/

    点赞 评论 复制链接分享
  • u013919201 代码艺术 3年前

    端口号后面加上项目名称试试

    点赞 评论 复制链接分享

相关推荐