在学dwr的时候,在浏览器上运行部署好的程序结果出现“not found”,解决如下

来源:互联网 发布:淘宝电视机为什么便宜 编辑:程序博客网 时间:2024/05/01 21:20

dwr入门中........



我先描述我的问题,我运行这个代码,结果,能弹出对话框“haha“,然后弹出对话框”not found“
Java代码  收藏代码
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <html>  
  3.     <head>  
  4.         <title>My JSP 'test.jsp' starting page</title>  
  5.         <script type='text/javascript' src='js/util.js'></script>  
  6.         <script type='text/javascript' src='js/engine.js'></script>  
  7.         <script type='text/javascript' src='dwr/interface/service.js'> </script>  
  8.         <script type="text/javascript">   
  9.         function firstDwr()  
  10.         {   
  11.             alert("haha");       [color=red]/////能弹出haha,说明能进入这个函数[/color]  
  12.             service.sayHello("Jorwen",callBackHello);    [color=red]//////但是接着又弹出”not found“显然是说这个类没找到,这是为什么[/color]  
  13.         }   
  14.         function callBackHello(data)  
  15.         {   
  16.             alert(data);     [color=red]/////没有进到这个函数里面[/color]  
  17.         }  
  18.          </script>  
  19.     </head>  
  20.     <body>  
  21.         <input type="button" name="button" value="测试" onclick="firstDwr()">  
  22.     </body>  
  23. </html>  

下面给出dwr.xml    ,   web.xml.    和   servrice.java代码
--------dwr.xml--------
Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://www.getahead.ltd.uk/dwr/dwr30.dtd">  
  3. <dwr>  
  4.     <allow>  
  5.         <create creator="new" javascript="service">  
  6.             <param name="class" value="helloWorld.Service" />  
  7.         </create>  
  8.     </allow>  
  9. </dwr>  

--------web.xml--------
Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <servlet>  
  7.         <servlet-name>dwr-invoker</servlet-name>  
  8.         <servlet-class>  
  9.             org.directwebremoting.servlet.DwrServlet  
  10.         </servlet-class>  
  11.         <init-param>  
  12.             <param-name>debug</param-name>  
  13.             <param-value>true</param-value>  
  14.         </init-param>  
  15.     </servlet>  
  16.     <servlet-mapping>  
  17.         <servlet-name>dwr-invoker</servlet-name>  
  18.         <url-pattern>/dwr/*</url-pattern>  
  19.     </servlet-mapping>  
  20.     <welcome-file-list>  
  21.         <welcome-file>index.jsp</welcome-file>  
  22.     </welcome-file-list>  
  23. </web-app>  

--------Service.jave--------
Java代码  收藏代码
  1. package helloWorld;  
  2.   
  3. public class Service {  
  4.     public String sayHello(String yourname){  
  5.         return "hello world "+yourname;  
  6.     }  
  7. }  

最后我想说明的是,我在做jsp之前,进行过dwr测试,就是说,我访问http://localhost:8080/HelloWorldTest/dwr是能看到Service的,并且点击进去能看到它的sayHello方法的。

这个问题是因为dwr路径问题,就是

  1.  <script type='text/javascript' src='js/util.js'></script>  
  2.         <script type='text/javascript' src='js/engine.js'></script>  
  3.         <script type='text/javascript' src='dwr/interface/service.js'> </script> 
这个路径错了,我看到一个教程里面说,在web工程下的webroop里面创建一个文件夹js,然后去把dwr.jar包里面的uril.js和engine.js复制到这里面,可是我这样做了,不行,可能还有别的地方的设置和教程里面说的不符,但我觉得最保险的就是访问http://localhost:8080/工程名字/dwr,如果能打开这个,那么在最前面几行它就会很明确的告诉你这个三个路径该怎么写,直接复制过来就好了,我就是这么解决的。


原创粉丝点击