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

巴鲁巴多斯 9 years, 6 months ago

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

准游击士尼莫 answered 9 years, 6 months ago

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

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

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

K.O.S answered 9 years, 6 months ago

Your Answer