我自己做的DWR的helloworld实例
都是按部就班来的,访问 http://localhost:8080/项目/dwr 一点儿问题没有
可是 在自己定义的hello.js里面就是不认识那个 dwr.xml里面new 出来的那个类(Hello)
Hello.sayHello(); 不能用

解决方案 »

  1.   

    写个例子给你看:
    package com.briup.dwr;public class HelloService {
    public String sayHello(String name) {
    return "Hello " + name;
    }
    }
    //--------------------------------------
    hello.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>第一个DWR测试例子</title>

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="../dwr/engine.js"></script>
    <script type="text/javascript" src="../dwr/util.js"></script>
    <script type="text/javascript" src="../dwr/interface/HelloService.js"></script>
    <script type="text/javascript" src="hello.js"></script>
      </head>
      
      <body>
        <input id="user" type="text" onblur="hello()"/>
        <input type="button" value="测试" onclick="hello()"/>
        <div id="result"></div>
      </body>
    </html>
    //-----------------------------------------------
    hello.jsfunction hello(){
    //var user = document.getElementById("user").value;
    var user = DWRUtil.getValue("user");
    HelloService.sayHello(user,callback);
    }
    function callback(msg){
    DWRUtil.setValue("result",msg);
    }
    //------------------------------------------------
    web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
    <servlet-name>mydwr</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    </servlet><servlet-mapping>
    <servlet-name>mydwr</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    </web-app>
    //-----------------------------------------------
    dwr.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"><dwr>
      <allow>
    <create javascript="HelloService" creator="new">
    <param name="class" value="com.briup.dwr.HelloService"/>
    </create>
      </allow>
    </dwr>
      

  2.   

    以上只是我提供的一个简单的例子,如果框架搭建复杂点,如ssh  那么dwr.xml配置文件:
    <create javascript="xxxxxx" creator="spring">
    <param name="beanName" value="bean类接口"/>
    <include method="dwr检验要使用的方法"/>
    </create>
      

  3.   

    DWR自定义JAVABEAN类 返回个LIST对象<create creator="new" javascript="service">
    <param name="class" value="com.SystemService" />
    </create>
    <convert converter="bean" match="com.Desk">
    <param name="include"  value="deskId,deskName,storeId,persons,realpersons" />
    </convert>我想LZ的问题是路径  ../代表的上级目录看看你的
        <script type="text/javascript" src="../dwr/engine.js"> </script> 
    <script type="text/javascript" src="../dwr/util.js"> </script> 
    这两个DWR工具JS被其它页面应用时的路径是否正确eg:JS文件放在 JS文件夹下你的调用JSP放在webroot下
    <script type='text/javascript' src='js/util.js'></script>

    <script type='text/javascript' src='js/engine.js'></script>
    <script type='text/javascript' src='dwr/interface/service.js'> </script>
      

  4.   

     http://localhost:8080/项目/dwr 一点儿问题没有 说明配置OK
      关键是你页面导入的那3个.js是否OK?仔细检查下吧
      

  5.   

    dwr.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
    <dwr>
    <allow>
    <create javascript="MD5Ecnrypt" creator="new">
    <param name="class" value="com.jack.dwr.simple.MD5Ecnrypt"></param>
    </create>
    </allow>
    </dwr>
      

  6.   

    <script type="text/javascript" src="<%=path%>/dwr/util.js"></script>
    <script type="text/javascript" src="<%=path%>/dwr/engine.js"></script>
    <script type="text/javascript" src="<%=path%>/dwr/interface/MD5Ecnrypt.js"></script>
      

  7.   

    应该是路径问题,前一段时间我刚碰到相似的问题
    我又一个自己的js文件它是包含到我的一个jsp中的,先把部分代码写出来,然后再给你我的应用得路径,你好对照
    这是一个jsp叫left.jsp
    <%@ page contentType="text/html;charset=GBK"%>
    <html>
    <head>
    <script type='text/javascript' src='../dwr/interface/Hello.js'></script>
    <script type='text/javascript' src='../dwr/engine.js'></script>
    <script type='text/javascript' src='../dwr/util.js'></script>   主要是这里你看看需要几个“.”
    <%@ include file="/inc/MyJs.js" %>----这个是对应的js文件这是我的MyJs.js中的一个使用DWR的代码
    function isTimeEnough()
    {

      DWREngine.setAsync(false);
      Hello.getLimitTime(startTime,additionTime,limitTime,getTimeEnough);
      return _data; 
    }他们的关系是这样的
    C:\system\flyApp\myprepare\left.jsp
    C:\system\flyApp\inc\MyJs.js