header image 2

AJAX整合-DWR 2.0 Work in Spring 1.2.x筆記

3 12 月, 2006 · No Comments

DWR 2.0 Work in Spring 1.2.x筆記
這幾天在玩AJAX,主要是將DWR2.0整合到Spring 1.2.x版
主要設定方式如下,設定檔部份也有1.3版的注解,已方便使用1.3版時,可用。

1.在dwr.xml撰寫內容如下

<dwr>
<allow>
<create creator="spring" javascript="Verify" scope="application">
<!-- ver 1.3
<param name="class" value="tw.edu.nccu.ajax.Verify"/>
-->
<!-- ver 2.0 -->
<param name="beanName" value="verify" />
</create>
<convert converter="bean" match="tw.edu.nccu.ajax.Verify" />
</allow>
</dwr>
ver 1.3 DOCTYPE is <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
ver 2.0 DOCTYPE is <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr//dwr20.dtd">

2.在web.xml撰寫內容如下,db-config.xml是DB設定檔。因為使用ContextLoaderListener,所以欲設讀取Context檔案為dispatcherServlet-servlet.xml

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/db-config.xml</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

3.在dispatcherServlet-servlet.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="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/**/*">dwrController</prop>
</props>
</property>
</bean>

<bean id="dwrController" class= "tw.edu.nccu.ajax.DWRWrapper">
<property name="servletClass">
<!--
ver 1.3
<value>uk.ltd.getahead.dwr.DWRServlet</value>
-->
<!-- ver 2.0 -->
<value>org.directwebremoting.servlet.DwrServlet</value>
</property>
<property name="initParameters">
<props>
<prop key="debug">true</prop>
</props>
</property>
</bean>
</beans>

4.撰寫DWRWrapper程式,內容如下。此程式為解決出現DWR can’t find a spring config的問題

import org.directwebremoting.spring.SpringCreator;
import org.springframework.web.servlet.mvc.ServletWrappingController;
/**
*
* @title DWRWrapper.java
* @package tw.edu.nccu.ajax
* @description 解決DWR working in sprig 出現 DWR can't find a spring config. 所需要的Controller
* @author Kazuya
* @date 2006/12/1
*/
public class DWRWrapper extends ServletWrappingController {
public void afterPropertiesSet() throws Exception {
SpringCreator.setOverrideBeanFactory(this.getWebApplicationContext());
super.afterPropertiesSet();
}
}

P.S.目前啟動後會出現DefaultContainer can’t find a classes的問題,但是AJAX可以運作。查詢到的結果是說原因DWR2.0加入了JDK5的註釋(annotations)。而DwrServlet初始化的時候會去檢查註釋的類別。
在官方網站也找不到解決方案,應該要等下一版本才有解決方式。

參考網站:
Your first cup of DWR : http://bram.jteam.nl/?p=2
java.net : https://dwr.dev.java.net/servlets/ReadMsg?list=users&msgNo=1167
Spring and DWR revisited : http://www.oreillynet.com/onjava/blog/2005/12/spring_and_dwr_revisited.html

Tags: 技術通報

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Leave a Comment