我的配置文件如下:
applicationContext.xml
<!--头文件,主要注意一下编码-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"><value>classpath:apppatent.properties</value>
</property>
</bean>
<!--建立数据源-->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean> <bean id="patentSearchService"
class="com.luceneheritrixbook.searchengine.service.impl.PatentSearchServiceImpl" singleton="false">
<property name="patentSearchResultDao"><ref local="patentSearchResultDao"/></property>
</bean>
<bean id="patentSearchResultDao"
class="com.luceneheritrixbook.searchengine.service.dao.impl.PatentSearchResultDaoImpl" singleton="false">
<property name="dataSource"><ref local="myDataSource"/></property>
</bean>

</beans>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>

<create creator="spring" javascript="patentSearchService">
<param name="beanName" value="patentSearchService" />
</create>

<!-- Bean for Search -->
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.PatentSearchResult">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchResults">
</convert>
<convert converter="bean"
match="com.luceneheritrixbook.searchengine.bo.SearchRequest">
</convert>

</allow>
</dwr>web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
<display-name>Spec Builder</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<filter>
        <filter-name>response-filter</filter-name>
        <filter-class>com.luceneheritrixbook.searchengine.filter.SetResponseFilter</filter-class>
    </filter>    <filter-mapping>
        <filter-name>response-filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-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>




<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>


<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>speclist.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
我看了好多次,还是没发现什么问题啊,大家帮我看看哈,谢谢了!

解决方案 »

  1.   

    先看看你tomcat正常启动没,然后再检查url地址是否正确
      

  2.   

    该问题已经解决,现在遇到了下一个问题,就是我定义的patentSearchService.getSearchResults函数在网页上执行不了,但是在java环境下可以执行,能得到搜索结果,是不是dwr 和spring没有配置好啊?
      

  3.   

    404明显URL路迳或业面跳转出现错误
      

  4.   

    有什么错误信息,看相应的包在jsp中导入没
      

  5.   

    没有提示具体的错误信息,需要导入的就是一个patentSearchService.js
    script type='text/javascript' src="${pageContext.request.contextPath}/dwr/engine.js"></script>
    <script type='text/javascript' src="${pageContext.request.contextPath}/dwr/util.js"></script>
    <script type='text/javascript' src="${pageContext.request.contextPath}/dwr/interface/patentSearchService.js"></script>
      

  6.   

    <create creator="spring" javascript="patentSearchService">
    <param name="beanName" value="patentSearchService" />
    </create>creator="spring"  改成 creator="new"试试
    检查你JS调用getSearchResults参数个数和后台是否一样,回调函数写对没
      

  7.   

    看一下tomcat 服务器里面(tomcat 的安装目录)发布的项目名称是否和你在地址栏输入的项目名称相同
    再仔细检查配置文件
    再仔细检查 Action 提交的路径
      

  8.   

    我之前用new试过,不行,我的配置是这样的:
    <dwr>
    <allow>

    <create creator="spring" javascript="patentSearchService">
    <param name="beanName" value="patentSearchService" />
    </create>

    <!-- Bean for Search -->
    <convert converter="bean"
    match="com.luceneheritrixbook.searchengine.bo.PatentSearchResult">
    </convert>
    <convert converter="bean"
    match="com.luceneheritrixbook.searchengine.bo.SearchResults">
    </convert>
    <convert converter="bean"
    match="com.luceneheritrixbook.searchengine.bo.SearchRequest">
    </convert>

    </allow>
    </dwr>applicationContext.xml
    <bean id="patentSearchService"
    class="com.luceneheritrixbook.searchengine.service.impl.PatentSearchServiceImpl" singleton="false">
    <property name="patentSearchResultDao"><ref local="patentSearchResultDao"/></property>
    </bean>
    <bean id="patentSearchResultDao"
    class="com.luceneheritrixbook.searchengine.service.dao.impl.PatentSearchResultDaoImpl" singleton="false">
    <property name="dataSource"><ref local="myDataSource"/></property>
    </bean>web.xml
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
    </context-param>...
    <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>

    <servlet>
    <display-name>DWR Servlet</display-name>
    <servlet-name>dwr-invoker</servlet-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>
    在JSP页面的引用是这样的:
    script type='text/javascript' src="${pageContext.request.contextPath}/dwr/engine.js"></script>
    <script type='text/javascript' src="${pageContext.request.contextPath}/dwr/util.js"></script>
    <script type='text/javascript' src="${pageContext.request.contextPath}/dwr/interface/patentSearchService.js"></script>我没看出配置哪里不对啊?你们帮我看看吧,谢谢了,另外我的getSearchResults函数是这样的:
    public SearchResults getSearchResults(SearchRequest request)在JSP中的调用是这样的:
    function doSearch(type){
    window.alert('hehe'); var result = document.getElementById("result");
    var pagingdiv = document.getElementById('paging');
    result.innerHTML="aaaaaa";
    pagingdiv.innerHTML = ""; if (type != 'paging') {
    window.alert('if');
    var startindexinput = document.getElementById('startindex');
    window.alert('if2');
    startindexinput.value = "1";
    window.alert('if3');
    }
    window.alert("test");
    request = {startindex:1, query:""};

    DWRUtil.getValues(request);
    window.alert('dwrtest');
    patentSearchService.getSearchResults(request, fillPage);
    window.alert('getSearchResultsTest');
    }

    function fillPage(data){

    window.alert('testFILLPAGE');
    var list = data.results;
    var resultdiv = document.getElementById('result');
    var pagingdiv = document.getElementById('paging'); resultdiv.innerHTML = "";
    pagingdiv.innerHTML = "";

    if (list.length == 0) {
    resultdiv.innerHTML = "<span>Sorry, we can't find what you want...</span>";
    return;
    }

    for(var i=0; i<list.length; i++) {
    var ele = document.createElement('div');
    ele.setAttribute('id','info' + list[i]);
    ele.innerHTML = "<span>loading..</span>";
    resultdiv.appendChild(ele); }

    minpage = data.minpage;
    maxpage = data.maxpage;
    startindex = data.startindex;
    hasnext = data.hasnext;

    if (minpage != 1) {
    var link = document.createElement('a');
    link.setAttribute("href","javascript:paging('" + ((minpage-11)*10+1) + "')");
    link.innerHTML = "前10页<<";
    pagingdiv.appendChild(link);
    }

    for (var j=minpage; j <=maxpage; j++)
    {
    if ((j-1)*10+1 != startindex)
    {
    var link = document.createElement('a');
    link.setAttribute("href","javascript:paging('" + ((j-1)*10+1) + "')");
    link.innerHTML = "第" + j + "页";
    pagingdiv.appendChild(link);
    }
    else {
    pagingdiv.innerHTML += ("第" + j + "页");
    }
    }

    if (hasnext == 1) {
    var link = document.createElement('a');
    link.setAttribute("href","javascript:paging('" + (maxpage*10+1) + "')");
    link.innerHTML = ">>后10页";
    pagingdiv.appendChild(link);
    }

    }}
    执行到patentSearchService.getSearchResults(request, fillPage);
    就走不下去了,在fillPage中没有弹出的对话框,所以表明没有进入这个回调函数,但不知道为什么啊。
      

  9.   

    暂时没看出什么问题、
    你先写个简单的没有参数的方法调试一下看看dwr能否执行,如果这都没能正确执行才能确定是你配置问题~