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/

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.