AJAX y APPFUSE 1.8.2 .. DWR en funcionamiento

Víctor Fariña General, Technology Leave a Comment

Pasos basicos para poner a andar DWR en una aplicacion basada en APPFUSE (1.8.2)

1. Añadir DWR jar en /lib/dwr-1.0
2. Añadir a /lib/lib.properties:

#
# DWR – https://dwr.dev.java.net/ (Direct Web Remoting)
#
dwr.version=1.0
dwr.dir=${lib.dir}/dwr-${dwr.version}
dwr.jar=${dwr.dir}/dwr.jar

 


3. Añadir al /properties.xml:

<!– Web –>
<path id=”web.compile.classpath”>

<pathelement location=”${dwr.jar}”/>
</path>

 


4. Añadir al /build.xml:


<target name=”package-web” depends=”compile-web,jsp-2″ description=”Package WAR”>

…>

<war destfile=”${webapp.dist}/${webapp.war}”

webxml=”${webapp.target}/WEB-INF/web.xml” compress=”true”>

<lib file=”${dwr.jar}”/>

</war>

</target>

 


5. Añadir servlet para DWR en /metadata/web/servlets.xml:

<!– dwr servlet –>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

 

6. Añadir DWR servlet mapping en /metadata/web/servlet-mappings.xml:

<!– dwr mapping –>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

 

 

7(Opcional). Excluir DWR del sitemesh en /web/WEB-INF/classes/decorators.xml:

<excludes>
<pattern>/dwr/*</pattern>
</excludes>

 

 

8. Añadir la configuracion de DWR,  /WEB-INF/dwr.xml:

<dwr>
<allow>
<convert converter=”bean” match=”com.queres.*”/>
<create creator=”spring” javascript=”userManager”>
<param name=”beanName” value=”userManager”/>
<include method=”getUser”/>
<include method=”getUsers”/>
</create>
</allow>
</dwr>

 

Si estas usando APPFUSE con la configuracion por defecto, tendras un error al intentar acceder a esta pagina,
para arerglarlo tienes asegurarte que spring deja acceder al metodo getUser, en el archivo
applicationContext-security.xml:
<bean id=”userManagerSecurity” class=”net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor”>
<property name=”authenticationManager” ref=”authenticationManager”/>
<property name=”accessDecisionManager” ref=”accessDecisionManager”/>
<property name=”objectDefinitionSource”>
<value>
com.queres.sgei.service.UserManager.getUsers=ADM
com.queres.sgei.service.UserManager.removeUser=ADM
</value>
</property>
</bean>
o bien las pruebas las puedes realizar con otros metodos que no sean getUser/getUsers.


Traducido y adaptado de : http://lifeasastruct.blogspot.com/

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.