[erro RESOLVIDO] (resta 1 dúvida!) dwr página não chama java

2 respostas
romuloff

Estou com tudo do DWR configurado e mesmo assim não está funcionando !
Será que alguem poderia me dar aquela forcinha ?

Abaixo, partes relevantes do que tenho.

AddressDWR.java:
package br.com.ctbc.netsitebackup.controller.ajax;

public class AddressDWR {

    private Logger logger = Logger.getLogger(AddressDWR.class);

    public AddressDWR() {
    }

    public AddressInfo getAddressByCep(String cep) throws SinException {
        try {
            logger.debug("DWR action: getAddressByCep");
            AddressInfo address = geographicInfoService
                    .findGISAddressByCEP(cep);
            return address;
        } catch (SinException se) {
            logger.error(se);
            throw se;
        }
    }
}
web.xml:
<!-- servlet DWR -->
    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <display-name>DWR Servlet</display-name>
        <description>Direct Web Remoter Servlet</description>
        <servlet-class>uk.ltd.getahead.dwr.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>
applicationContext.xml:
<!-- DWR mapping -->
    <bean name="addressDWR" class="br.com.ctbc.netsitebackup.controller.ajax.AddressDWR" />
    <!-- scope="prototype" -->
dwr.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>
    <allow>
        <convert converter="bean" match="com.bunge.ecommerce.model.data.*" />
        <convert converter="bean" match="br.com.ctbc.infrastructure.user.*" />
        <create creator="spring" javascript="AddressDWR">
            <param name="beanName" value="addressDWR" />
            <include method="getAddressByCep" />
        </create>
    </allow>
</dwr>
page.jsp:
<script src="dwr/interface/AddressDWR.js"></script>
<script src="dwr/engine.js"></script>
<script src="dwr/util.js"></script>

<script type="text/javascript" language="javascript">

	// methods to load address informations by cep:
	function buscaEndereco(campo){
		AddressDWR.getAddressByCep(campo.value,montaEndereco);
	}

    function montaEndereco(address){
        var formulario = document.forms[0];
        ...

</script>

<html>
...
   CEP: <s:textfield label="cep" name="user.address.cep" onblur="javascript:buscaEndereco(this)" /><br><br>
Os pom.xml estão certos tb: (pom.xml pai)
<!-- DWR dependencies -->
			<dependency>
				<groupId>org.directwebremoting</groupId>
				<artifactId>dwr</artifactId>
				<version>2.0.3</version>
			</dependency>
pom.xml filho:
<!-- dwr -->
        <dependency>
            <groupId>org.directwebremoting</groupId>
            <artifactId>dwr</artifactId>
        </dependency>

2 Respostas

romuloff

RESOLVI !

Precisei de colocar o contextPath no src do javascript ... NÃO SEI PORQUE !!!
[size=18][color=red]ALGUEM PODERIA ME EXPLICAR[/color][/size] porque todos *exemplos não precisaram de usar este contextPath ?

Resumindo, porque o que estava assim (padrão que eu ví em todos *exemplos):
<script src="dwr/interface/AddressDWR.js"></script>
<script src="dwr/engine.js"></script>
<script src="dwr/util.js"></script>
... teve que ficar assim:
<script src="<%=request.getContextPath()%>/dwr/interface/AddressDWR.js"></script>
<script src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script src="<%=request.getContextPath()%>/dwr/util.js"></script>

*vários exemplos online e projetos passados de minha empresa que utilizavam dwr

romuloff

… edited.
admin remove.

Criado 15 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 2
Participantes 1