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

问题描述:

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'

求助!!!

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

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

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

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

mvc:default-servlet-handler/

Tomcat端口改成8090

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

还有是否配置了扫描 controller

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

<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> 

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

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>

找到原因了,把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`,求问广大猿友如何解决?!