Buenas tardes a todos!!
Estoy intentando configurar DWR en mi proyecto pero no encuentro la manera de que me reconozca en las js, por ejemplo, el objeto 'DWRUtil'.
1.- En primer lugar me he creado mi fichero dwr.xml en 'WebContent/WEB-INF'.
2.- He añadido la librería dwr.jar en 'WebContent/WEB-INF/lib'.
3.- Añado el 'servlet' al web.xml:
Código:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
4.- He creado una clase java llamada 'PruebaDWR' que es donde quiero llamar desde javascript. He añadido esta clase al dwr.xml
Código:
<create creator="new" javascript="PruebaDWR">
<param name="class" value="es.juntadeandalucia.salud.albatros.industriasAlimentarias.dwr.PruebaDWR"/>
</create>
5.- En una jsp he añadido algo así:
Código:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Importaciones DWR -->
<script type='text/javascript' src='dwr/interface/PruebaDWR.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
...
function update(){
PruebaDWR.obtenerDatosDWR(respObtenerDatosDWR);
DWRUtil.removeAllOptions('clave');
}
function respObtenerDatosDWR(data){
alert(data);
}
...
</script>
<s:head theme="ajax"/>
</head>
<body>
...
<select name="clave" size="1" onchange="update();" id="clave">
<option value="AST">Asturias</option>
<option value="MAD">Madrid</option>
<option value="BCN">Barcelona</option>
<option value="VAL">Valencia</option>
</select>
...
</body>
</html>
Mi problema es que cuando cambio la opción del select se va a la función 'update()' pero no encuentra ni el objeto 'DWRUtil' ni 'PruebaDWR'. En concreto me dice 'DWRUtil is not defined'.
¿Que he configurado mal? Parece q no me importa la librería...
En cambio si pongo en el navegador: 'localhost:8080/XXXXX/dwr/util.js', 'localhost:8080/XXXXX/dwr/engine.js' o 'localhost:8080/XXXXX/dwr/interface/PruebaDWR.js' me accede correctamente mostrándome el código de los ficheros.
Espero que puedan ayudarme...
Un Saludo y muchas gracias!!