ssm框架整合常見錯誤
雖然三大框架特別特別的好用,但是,當我第一次把這三個框架用maven整合到一起的時候,各種錯誤接踵而至,下面來做一下三大框架整合的總結:
首先是在匯入三大框架的各種依賴包的時候,因為我用的是j2ee ecilpse,所以要匯入j2ee的依賴包,現在這兩個依賴包是這樣的:
- <!-- j2ee的包 -->
- <dependency>
- <groupId>javax.servlet</groupId>
-
<artifactId>servlet-api</artifactId
- <version>3.0-alpha-1</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <version>2.2.1-b03</version>
- </dependency>
當然,這只是第一個錯誤,後面的更無語,下一個錯誤是:在你的專案和java原始碼的包上同時出現兩個紅叉,然後你一部署就出現各種錯誤,這時不要急,點開problems,發現是這個:Cannot change version of project facet Dynamic Web Module to 2.5,在j2eeeciplse中,這是啥意思呢?意思大概是你的web Module版本不能是2.5的,然後我把這個錯誤百度一下,結果很多,天花亂墜,其實真正的原因是你的jdk版本和javaweb
配置的版本不一致,因為eclipse會自動使用工具自帶的jdk,然而你新建的maven專案是新的專案骨架,好的,那jdk自然就是跟不上節奏了,所以給一個正確操作的連線:按照這上面的操作就可以改變你當前專案的狀況:http://blog.csdn.net/sunqing0316/article/details/43675837;這只是修改當前專案的狀況,要治本,當然要把我們的預設的jdk設定成我們自己的jdk,
同時將這個jdk預設設定成你的安裝的jdk版本,就可以解決問題了(連結部落格裡修改web.xml後要update maven一下)。
還有就是如果某個jar包的包或者依賴包沒有下載完全或者失敗,但是maven並不會提示你的jar包出現了錯誤,一旦
出錯了,他會提示一個你明明已經匯入了包的一個類找不到,這時候 把pom.xml中的那個相應的jar包刪除,再在網路好的情況下再下載,就不會有問題了。
遇到的最後一個問題就是三個框架的配置檔案的配置問題,三個框架的配置檔案一起放在source檔案下:
最重要的是struts的action的class名要填spring的bean配置的你寫得action:
sping的beans.xml;
- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx.xsd
- ">
- <!-- 配置action,這裡beans的id就是spring中的action -->
- <beanid="studentAction"class="com.hyycinfo.ssmtest1.web.actions.StudentAction"scope="prototype">
- <propertyname="studentBiz"ref="studentBiz"></property>
- </bean>
- </beans>
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
- "http://struts.apache.org/dtds/struts-2.3.dtd">
- <struts>
- <constantname="struts.enable.DynamicMethodInvocation"value="false"/>
- <constantname="struts.devMode"value="true"/>
- <constantname="struts.objectFactory"value="spring"></constant>
- <packagename="default"namespace="/"extends="struts-default">
- <!-- 這裡的class部分必須填寫spring 的配置的action的id 名,這是由spring的ioc生成action物件 -->
- <actionname="student_*"class="studentAction"method="{1}">
- <resultname="success">
- add_success.jsp
- </result>
- </action>
- </package>
- </struts>
下面是三個框架的整合的依賴配置:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx.xsd
- ">
- <!-- 註解的讀取 -->
- <context:annotation-config/>
- <context:component-scanbase-package="com.hyycinfo"/>
- <!-- 使用註解的事務配置 -->
- <tx:annotation-driventransaction-manager="txManager"/>
- <!-- 使用spring自帶的屬性檔案讀取類完成讀取配置檔案的操作 -->
- <beanid="pphc"