1. 程式人生 > >ssm框架整合常見錯誤

ssm框架整合常見錯誤

  雖然三大框架特別特別的好用,但是,當我第一次把這三個框架用maven整合到一起的時候,各種錯誤接踵而至,下面來做一下三大框架整合的總結:

     首先是在匯入三大框架的各種依賴包的時候,因為我用的是j2ee ecilpse,所以要匯入j2ee的依賴包,現在這兩個依賴包是這樣的:

  1. <!-- j2ee的包 -->
  2.     <dependency>
  3.       <groupId>javax.servlet</groupId>
  4.       <artifactId>servlet-api</artifactId
    >
  5.       <version>3.0-alpha-1</version>
  6.     </dependency>
  7.     <dependency>
  8.       <groupId>javax.servlet.jsp</groupId>
  9.       <artifactId>jsp-api</artifactId>
  10.       <version>2.2.1-b03</version>
  11.     </dependency>
如果這兩個包的版本不合,一部署專案就會出現一個jsp什麼Exception然後後面就是一個大大的nullpointerException,當初看到這個是十分惱火的,因為之前的上面兩個依賴包不是相容的版本,所以就報了類似的錯誤。所以包的匯入應該像上面那樣。

當然,這只是第一個錯誤,後面的更無語,下一個錯誤是:在你的專案和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;

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:context="http://www.springframework.org/schema/context"
  4.     xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  8.          http://www.springframework.org/schema/context  
  9.         http://www.springframework.org/schema/context/spring-context.xsd  
  10.          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  
  11.          http://www.springframework.org/schema/tx  
  12.         http://www.springframework.org/schema/tx/spring-tx.xsd  
  13.          ">
  14.    <!-- 配置action,這裡beans的id就是spring中的action -->
  15.     <beanid="studentAction"class="com.hyycinfo.ssmtest1.web.actions.StudentAction"scope="prototype">
  16.         <propertyname="studentBiz"ref="studentBiz"></property>
  17.     </bean>
  18. </beans>
struts.xml:
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6.     <constantname="struts.enable.DynamicMethodInvocation"value="false"/>
  7.     <constantname="struts.devMode"value="true"/>
  8.     <constantname="struts.objectFactory"value="spring"></constant>
  9.     <packagename="default"namespace="/"extends="struts-default">
  10.         <!-- 這裡的class部分必須填寫spring 的配置的action的id 名,這是由spring的ioc生成action物件 -->
  11.         <actionname="student_*"class="studentAction"method="{1}">
  12.             <resultname="success">
  13.                 add_success.jsp  
  14.             </result>
  15.         </action>
  16.     </package>
  17. </struts>
對的,就是這樣,

下面是三個框架的整合的依賴配置:

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:context="http://www.springframework.org/schema/context"
  4.     xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  8.          http://www.springframework.org/schema/context  
  9.         http://www.springframework.org/schema/context/spring-context.xsd  
  10.          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  
  11.          http://www.springframework.org/schema/tx  
  12.         http://www.springframework.org/schema/tx/spring-tx.xsd  
  13.          ">
  14.     <!-- 註解的讀取 -->
  15.     <context:annotation-config/>
  16.     <context:component-scanbase-package="com.hyycinfo"/>
  17.     <!-- 使用註解的事務配置 -->
  18.     <tx:annotation-driventransaction-manager="txManager"/>
  19.     <!-- 使用spring自帶的屬性檔案讀取類完成讀取配置檔案的操作 -->
  20.     <beanid="pphc"
  21.