Java 使用Spring MVC运行DWR时未找到dwrService.js
我已经从中创建了一个Spring DWR集成 当我运行该项目时,浏览器中会弹出一个“NOT FOUND”(未找到),但没有找到对dwrService.js的响应。Engine.js和util.js已正确加载Java 使用Spring MVC运行DWR时未找到dwrService.js,java,spring,jakarta-ee,spring-mvc,dwr,Java,Spring,Jakarta Ee,Spring Mvc,Dwr,我已经从中创建了一个Spring DWR集成 当我运行该项目时,浏览器中会弹出一个“NOT FOUND”(未找到),但没有找到对dwrService.js的响应。Engine.js和util.js已正确加载 Request: `http://localhost:8080/HelloWorldSpring3/dwr/interface/dwrService.js` Response: "404 Not Found" 控制台中的消息是 an 10, 2014 4:12:31 PM org.spri
Request: `http://localhost:8080/HelloWorldSpring3/dwr/interface/dwrService.js`
Response: "404 Not Found"
控制台中的消息是
an 10, 2014 4:12:31 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/HelloWorldSpring3/forms/dwr/interface/dwrService.js] in DispatcherServlet with name 'dispatcher'
Jan 10, 2014 4:14:24 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/HelloWorldSpring3/forms/dwr/dwr/interface/dwrService.js] in DispatcherServlet with name 'dispatcher'
为什么对dwrService.js的请求是针对dispatcher servlet的
下面是我的配置文件、控制器和jsp
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_5.xsd">
<display-name>Comet</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Mapping for DWR -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/forms/dwr/*</url-pattern>
</servlet-mapping>
<!-- Mapping for MVC -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/forms/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
彗星
调度员
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/applicationContext.xml
1.
调度员
/表格/dwr/*
调度员
/形式/*
org.springframework.web.context.ContextLoaderListener
index.jsp
dwr-Context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
<dwr:annotation-config />
<dwr:annotation-scan base-package="net.roseindia.controllers" scanDataTransferObject="true" scanRemoteProxy="true" />
<dwr:url-mapping />
<dwr:controller id="dwrController" debug="true">
<dwr:config-param name="activeReverseAjaxEnabled" value="true"/>
</dwr:controller>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:annotation-config />
<context:component-scan base-package="net.roseindia.controllers" />
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<import resource="file:**/WebContent/WEB-INF/dwr-context.xml" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
<dwr:annotation-config />
<dwr:annotation-scan base-package="net.roseindia.controllers" scanDataTransferObject="true" scanRemoteProxy="true" />
<dwr:url-mapping />
<dwr:controller id="dwrController" debug="true">
<dwr:config-param name="activeReverseAjaxEnabled" value="true"/>
</dwr:controller>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:annotation-config />
<context:component-scan base-package="net.roseindia.controllers" />
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<import resource="file:**/WebContent/WEB-INF/dwr-context.xml" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
/WEB-INF/views/
.jsp
JSP
SpringMVC-DWR集成教程
SpringMVC-DWR集成教程
AJAX版本
//检索匹配的值
//DWR服务的代表
函数add(){
//检索文本输入的值
变量操作数1=dwr.util.getValue(“inputNumber1”);
变量操作数2=dwr.util.getValue(“inputNumber2”);
//传递两个数字、一个回调函数和一个错误函数
dwrService.add(操作数1、操作数2、{
回调:handleAddSuccess,
errorHandler:HandLeaderRor
});
}
//数据包含返回的值
函数handleAddSuccess(数据){
//将数据分配给结果id
dwr.util.setValue(“总和”,数据);
}
函数handleAddError(){
//显示弹出消息
警报(“我们无法添加这些值!”);
}
演示1
添加两个数字:
+
总和:(结果将显示在此处)
我做错了什么
为什么对dwrService.js的请求是针对dispatcher servlet的
因为这正是你绘制地图的方式。注意调度程序。这意味着匹配“/forms/dwr”的请求将被发送到名为“dispatcher”的servlet
调度员
/表格/dwr/*
我不是DWR专家,但我相信,按照您希望的设置方式,请求必须首先转到DispatcherServlet。Spring然后将它们转发给Spring管理的DWR bean
您确定
他在工作吗?我会启动Spring日志来调试,看看是否有来自这个文件的bean被创建
在我看来,您的导入语句中的“/WebContent”很可疑。/WebContent/WEB-INF/dwr-context.xml应该是/WEB-INF/dwr-context.xml吗
你在用什么操作系统?你的问题在资本化方面有些不一致。您提到了dwr-Context.xml,但案例与xml中的内容不匹配。只有在Unix类型的平台上,这才是一个因素
编辑:
一般来说,只是一个问题:是否需要导入所有css
&UI头部分中的js文件也通过
调度器servlet映射
这取决于URL结构。如果您的图像和CSS文件位于“/forms”下,那么请求将到达Spring dispatcher。您需要专门配置dispatcher,以便为您的资源提供服务。Spring为此提供了[]指令()
但是,由于Spring dispatcher映射到“/forms/”而不是“/”,所以容器的默认servlet将为“/forms/*”下没有的任何内容提供服务。例如,“/css/main.css”不会用您当前的配置击中Spring的调度程序
这两种方法都是有效的,但我个人的偏好是将DispatcherServlet映射到/ajax或/ui之类的路径,并让servlet容器从/images或/css之类的文件夹中提供我的静态内容。感谢您的回复John now无权访问代码将在一天内更新。一般来说,在UI的头部分导入所有css&js文件的请求是否也通过DispatcherServlet映射?