<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風雨無阻

    (轉)Struts Spring Hibernate 整合報空指針解決方法

    最近一直在弄WebWork,Struts都快忘了。今天又自己小試了一下SSH,結果每次都是報空指針異常,經過一番研究,發現,如果不把action的type改成

    org.springframework.web.struts.DelegatingActionProxy

    的話,就會報這個

    java.lang.NullPointerException

     com.test.struts.action.UserAction.show(UserAction.java:46)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    解決辦法:
    1.在struts-config.xml的action把type改成org.springframework.web.struts.DelegatingActionProxy,例如:
    <action attribute="userForm" input="/index.jsp" name="userForm"
              parameter="param" path="/user" scope="request"
              type="org.springframework.web.struts.DelegatingActionProxy"
              validate="false">
              <forward name="success" path="/success.jsp" />
    </action>
    2.在spring的配置文件(applicationContext.xml)里添加一些代碼:
    <bean id="transactionManager"
             class="org.springframework.orm.hibernate3.HibernateTransactionManager">
             <property name="sessionFactory">
              <ref bean="sessionFactory" />
             </property>
    </bean>
    給DAO加上代理
    <bean id="UserDAOIProxy"
             class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
             <property name="transactionManager">
              <ref bean="transactionManager" />
             </property>
             <property name="target">
              <ref bean="UserDao" />
             </property>
             <property name="transactionAttributes">
              <props>
               <prop key="create*">PROPAGATION_REQUIRED</prop>
               <prop key="update*">PROPAGATION_REQUIRED</prop>
               <prop key="delete*">PROPAGATION_REQUIRED</prop>
               <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
              </props>
             </property>
    </bean>
    3.更改Service的引用
     <bean name="UserService"
             class="com.test.service.impl.UserServiceImpl">
             <property name="userDao">
              <ref bean="
    UserDAOIProxy" />
             </property>
    </bean>
    這樣就不會報那個異常了,測試通過^_^
    我的配置文件代碼:
    applicationContext.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <bean id="dataSource"
             class="org.apache.commons.dbcp.BasicDataSource">
             <property name="driverClassName"
              value="oracle.jdbc.driver.OracleDriver">
             </property>
             <property name="url"
              value="jdbc:oracle:thin:@192.192.192.19:1521:orcl">
             </property>
             <property name="username" value="sunyu"></property>
             <property name="password" value="19830317"></property>
    </bean>
    <bean id="sessionFactory"
             class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
             <property name="dataSource">
              <ref bean="dataSource" />
             </property>
             <property name="hibernateProperties">
              <props>
               <prop key="hibernate.dialect">
                org.hibernate.dialect.Oracle9Dialect
               </prop>
               <prop key="hibernate.show_sql">true</prop>
              </props>
             </property>
             <property name="mappingResources">
              <list>
               <value>com/test/model/TestUser.hbm.xml</value>
              </list>
             </property>
    </bean>
    <bean id="transactionManager"
             class="org.springframework.orm.hibernate3.HibernateTransactionManager">
             <property name="sessionFactory">
              <ref bean="sessionFactory" />
             </property>
    </bean>
    <bean name="UserDao" class="com.test.dao.impl.UserDaoImpl">
             <property name="sessionFactory">
              <ref bean="sessionFactory" />
             </property>
    </bean>
    <bean id="UserDAOIProxy"
             class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
             <property name="transactionManager">
              <ref bean="transactionManager" />
             </property>
             <property name="target">
              <ref bean="UserDao" />
             </property>
             <property name="transactionAttributes">
              <props>
               <prop key="create*">PROPAGATION_REQUIRED</prop>
               <prop key="update*">PROPAGATION_REQUIRED</prop>
               <prop key="delete*">PROPAGATION_REQUIRED</prop>
               <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
              </props>
             </property>
    </bean>
    <bean name="UserService"
             class="com.test.service.impl.UserServiceImpl">
             <property name="userDao">
              <ref bean="UserDAOIProxy" />
             </property>
    </bean>
    <bean name="/user" class="com.test.struts.action.UserAction">
             <property name="userService">
              <ref bean="UserService" />
             </property>
    </bean>
    </beans>
    struts-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "
    http://struts.apache.org/dtds/struts-config_1_2.dtd
    ">
    <struts-config>
    <data-sources />
    <form-beans>
             <form-bean name="userForm" type="com.test.struts.form.UserForm" />
    </form-beans>
    <global-exceptions />
    <global-forwards />
    <action-mappings>
             <action attribute="userForm" input="/index.jsp" name="userForm"
              parameter="param" path="/user" scope="request"
              type="org.springframework.web.struts.DelegatingActionProxy"
              validate="false">
              <forward name="success" path="/success.jsp" />
             </action>
    </action-mappings>
    <message-resources parameter="com.test.struts.ApplicationResources" />
    <plug-in
             className="org.springframework.web.struts.ContextLoaderPlugIn">
             <set-property property="contextConfigLocation"
              value="/WEB-INF/applicationContext.xml" />
    </plug-in>

    </struts-config>



    ------------------------------------------
    第二種方法,如果在struts-config.xml里面加上

    <controller>
    <set-property property="processorClass"
    value="org.springframework.web.struts.DelegatingRequestProcessor" />
    </controller>

    這樣action就不需要type屬性了
    ----------------------------------------------

    posted on 2008-04-03 19:14 秋楓故事 閱讀(2443) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    新聞檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 人妻无码一区二区三区免费| 亚洲色大成网站www久久九| 在线观看亚洲天天一三视| 日产国产精品亚洲系列| 免费a级毛片永久免费| 国产免费牲交视频| 国产一区二区三区在线观看免费 | 无人视频在线观看免费播放影院| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲午夜理论片在线观看| 亚洲精品无码久久久久APP| 国产精品亚洲一区二区在线观看| 亚洲国产成人久久精品软件| 国产亚洲Av综合人人澡精品| 窝窝影视午夜看片免费| 久久性生大片免费观看性| 国产色无码精品视频免费| 99久久免费看国产精品| 69堂人成无码免费视频果冻传媒| 99久久99久久精品免费看蜜桃 | 永久免费不卡在线观看黄网站| 国产免费拔擦拔擦8X高清在线人 | 免费精品99久久国产综合精品| 久久免费观看国产精品| 99re在线精品视频免费| 无码av免费毛片一区二区 | 一区二区在线视频免费观看| 三级网站在线免费观看| 香港a毛片免费观看| 免费观看的毛片大全| 国产精品公开免费视频| 久久国产成人精品国产成人亚洲| 亚洲国产婷婷六月丁香| 亚洲第一页在线观看| 亚洲AV永久无码精品一福利| 一级人做人a爰免费视频| 日韩免费无码一区二区三区| 成人免费毛片视频| 亚洲中文字幕丝袜制服一区| 日韩精品一区二区亚洲AV观看 | 最新国产成人亚洲精品影院|