IDEA配置一个入门的ssh事例,解决Artifact war exploded:Error during artifact deployment. See server log for detail

首先,我的版本ideaIU-2017.3.4,

一、新建一个项目project

1、1)create new project

2)file   ——》new ——》project

2、这里选择spring,struts2,hibernate

1)选择spring ——>spring,勾选create empty spring-config.xml文件,download是自动选择的(它可以自动生成spring必要的jar包,你可以点击 Configure..  查看里面的jar包)选择好后,再选择JavaEE下的Web Application ——>struts2 , 往下拉 ,选择hibernate,选择 finnish

创建项目名和你要存放的路径,我的为ssh和E:\JavaWeb相关\ssh,然后finnish

等待系统自动为你下载相关的jar包

下载完成后的目录,lib里面为jar包

3、生成web.xml

在项目的右上角,如下图的地方,点击(Project Structure

选择Modules——》Web——》+ ——》web.xml,就会弹出下图,点击OK,再点击底部的Apply

然后,还在该窗口下,点击ssh——》Source ——》WEB-INF ——》鼠标右键 ——》New Floder..

创建两个文件夹 classes 和 lib

然后选择Path ——》Use module compile output path,把路径改成下面这样的,然后Apply,OK 退出

4、加入另外的相关的jar包到ssh\lib文件和WEB-INF\lib文件

(注意看,你自己项目有没有下载完成,如若没有,你需要手动添加)

1 ) ssh\lib

注意:手动添加的jar包,需要右击——》还需要回到project structure,将这些jar包添加到artifact

struts2-spring-plugin-2.3.34.jar是在struts-2.3.34.zip解压后的lib目录中,是spring整合struts2用到的

mysql-connector-java-8.0.12.jar是连接数据库用到的

spring-web-4.3.12.RELEASE.jar这个是项目自动下载缺失的spring需要的jar包

下面是hibernate缺少的c3p0连接池用到的jar包(在hibernate.zip解压后的lib/optional/c3p0/*)

2 ) WEB-INF\lib

将src\lib下的jar包copy到WEB-INF\lib中,另外再加入如下的三个jar包,然后到project Structure,将该lib添加到artifact

3)回到project Structure——》module——》ssh——》dependencies——》+ ——》JARs or Directory,  然后选择你的项目下的WEB-INF\lib文件,点击OK

选择Jar Directory ——》OK,Apply

配置Artifact,在下图右击的地方,鼠标右击,选择+Add ——》Web Application:Exploded ——》From module..

就会弹出下图,点击ssh,OK

得到下面的图后,点击Apply

然后,点击ssh:war exploded,在窗口右下角点击 Fix..  ,选择第二个Add all miss dependencies of 'ssh' to the artifact,

(当然,你可以选择第一个,一个一个的添加jar包到 artifact )

如果创建WEB-INF\lib这个文件,当运行项目时会报下面的错误

二、代码配置

spring-config.xml中加入下面的代码(是spring管理hibernate的),引入的外部文件是放在src下的jdbc.properties

<!-- 引入外部的属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 配置c3p0连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- 配置Hibernate相关属性 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Hibernate的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 加载Hibernate中的映射文件 -->
        <property name="mappingResources">
            <list>
                <value></value>
            </list>
        </property>
    </bean>

jdbc.properties(连接数据库用的信息)

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_book?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!--spring的配置-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-config.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--struts的配置-->
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

注意jsp页面中提交表单最好使用struts-tags(如下)

<s:form>
    <table>
      <tr>
        <td>用户名:</td>
        <td><s:textfield value="" name="#实体类的参数"/> </td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><s:textfield value="" name="#实体类的参数"/> </td>
      </tr>
      <tr>
        <td colspan="2">
          <s:submit value="登陆"/><s:reset value="重置"/>
        </td>
      </tr>
    </table>
  </s:form>

创建src目录,下面是我写好的一个项目的src目录,dao(数据库操作)、action、domain(实体)、service(业务层)

准备工作的大致就是这样的

 

猜你喜欢

转载自blog.csdn.net/clmmei_123/article/details/81736536