Intellij idea 下使用maven管理web项目,部署运行时发现并没有将lib包部署


图片描述

图片描述

如上两幅图所示,使用 war exploded 模式部署时并没有将 /lib 目录以及 WEB-INF 下的 views 目录部署到 target/SpringMVCDemo/WEB-INF 下;使用 war 模式也是一样。但是使用 mvn package 命令则能够得到将 lib 以及资源文件夹 views 打包的war文件。请问是我的配置问题吗?

另外,运行时总是无法正常访问,显示如下界面:

这是该原因引起的吗?

我的 web.xml 文件:


 xml


 <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我的 dispatcher-servlet.xml 文件:


 xml


 <mvc:annotation-driven/>
<context:component-scan base-package="org.psy.practice.springmvc" />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

HomeController.java 文件


 java


 @Controller
public class HomeController {

    ...

    @RequestMapping("/")
    public String showIndexPage(Model model) {
        System.out.println("in HomeController showIndexPage");
        return "index";
    }

    ...

}

index.jsp 是一个很简单的显示"hello, world"的页面。

spring-mvc web tomcat maven intellij-idea

巴鲁巴多斯 10 years ago

idea的话,我记得是直接访问 localhost:8080 就可以了

准游击士尼莫 answered 10 years ago

昨天晚上换了一台机器,另外把所有空的 xml 文件加上了基本的数据, tiles 版本改成了3.0,发现可以正常访问了。不太清楚是电脑问题还是 xml 文件的问题,但是至少说明了基础的配置是正确的。

但是今天发现依旧在原来机器上无法正常运行, target 目录下无法生成 lib 文件夹, views 文件夹也无法正常部署。不知道到底是哪里设置出了问题。

今天下午再次试验,重新添加了 artifact ,发现又正常了。到现在为止还是不清楚什么地方出了问题。如果有人知道答案的话,烦请告知。

K.O.S answered 10 years ago

Your Answer