问题是这样的....一台服务器中发布了2个项目,这两个项目中DWR的配置是一样的.一个项目没有出现这个问题,但是另外一个项目却出现Ajax(我在DWR.xml文件中定义的JavaScript名字)未定义,但是2个项目在本机上都没问题...在网上找了很久,有的说是路径错误,有的说是包没加进去,有的说是jdk版本不同,但是应该不属于这些情况...因为就是一个项目没问题..一个项目出问题...这里才头大...1.DWR.xml配置<dwr>
<allow>
<convert converter="bean" match="test.MemberBO" />
<create creator="spring" javascript="Ajax">
<param name="beanName" value="Ajax" />
<include method="定义的方法" />
</create>
<filter class="一个过滤器的类"></filter>
</allow>
</dwr>2.web.xml配置<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config-member</param-name>
<param-value>/WEB-INF/DWR.xml</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr_test/*</url-pattern>
</servlet-mapping>3.applicationContext.xml配置
<bean id="Ajax" class="com.bin.service.Ajax">
<property name="dataDAO">
<ref local="dataDAO" />
</property>
</bean>上面是对DWR的配置....2个项目基本上是一样的.....但就是一个没问题...一个有问题....其实...我想了一下是不是服务器那边的配置问题....因为我是接着别人的项目来做的..而且服务器这里的配置我也不太熟...希望各位碰到过这样的问题的...或者是高手们来帮个忙....我已经在这里浪费了很多时间了......
拜托了.....
<allow>
<convert converter="bean" match="test.MemberBO" />
<create creator="spring" javascript="Ajax">
<param name="beanName" value="Ajax" />
<include method="定义的方法" />
</create>
<filter class="一个过滤器的类"></filter>
</allow>
</dwr>2.web.xml配置<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config-member</param-name>
<param-value>/WEB-INF/DWR.xml</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr_test/*</url-pattern>
</servlet-mapping>3.applicationContext.xml配置
<bean id="Ajax" class="com.bin.service.Ajax">
<property name="dataDAO">
<ref local="dataDAO" />
</property>
</bean>上面是对DWR的配置....2个项目基本上是一样的.....但就是一个没问题...一个有问题....其实...我想了一下是不是服务器那边的配置问题....因为我是接着别人的项目来做的..而且服务器这里的配置我也不太熟...希望各位碰到过这样的问题的...或者是高手们来帮个忙....我已经在这里浪费了很多时间了......
拜托了.....
<script type='text/javascript'
src='/dwr/interface/AjaxService.js'></script>
<script type='text/javascript'
src='/dwr/engine.js'></script>
<script type='text/javascript'
src='/dwr/util.js'></script>
<script type="text/javascript"
src="/public/js/head.js"></script>这是在页面中看到的页面源代码显示的js路径....这个在服务器中应该是没错的...
<script type='text/javascript'
src='${pageContext.request.contextPath }/dwr/interface/Ajax.js'></script>
这是两个项目中都用到的引用js的代码
src='/dwr/interface/AjaxService.js'></script>
你可能是这里除了问题,需要把完整路径加上。
给你一个比较完整的实现过程你参考一下:
web-xml
<!-- *************************** dwr ************************************ -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>classes</param-name>
<param-value>java.lang.Object</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
dwr.xml
<dwr>
<allow>
<convert match="com.******.autoInfoQuery.bo.CAreaBean" converter="bean"></convert>
<create javascript="cityService" creator="spring">
<param name="beanName" value="IAreaService"></param>
<include method="getAreaByCity"/>
</create>
</allow>
</dwr>spring的配置
<bean id="IAreaService" class="com.*******.service.impl.AreaServiceImpl">
<property name="areaDao"
ref="IAreaDao">
</property>
</bean>
js 的引用
<script language="javascript" src="<%=path%>/dwr/engine.js"></script>
<script language="javascript" src="<%=path%>/dwr/util.js"></script>
<script language="javascript" src="<%=path%>/dwr/interface/questionAndAnswerService.js"></script>
js的调用代码
try{
cityService.getAreaByCity(objValue, getAreaByCityRoll);
}catch(e){alert(e.message);}
}
dwr就这几步,保证没错误就OK
<script type='text/javascript'
src='/dwr/interface/AjaxService.js'></script>
<script type='text/javascript'
src='/dwr/engine.js'></script>
<script type='text/javascript'
src='/dwr/util.js'></script>
<script type="text/javascript"
src="/public/js/head.js"></script>
如果是多个模块的话,就要注意路径的问题了
我已经试过加上项目名.....但在服务器发布之后.....依然是Ajax未定义......我有点怀疑是不是服务器里的配置问题...因为没有发生问题的那个项目是很早之前就在那台服务器上跑的了...但是DWR应该没有在服务器那里配置文件路径这种吧....
但如果没有出现AJAX的话那估计就是你DWR配置除问题了
src='dwr/interface/AjaxService.js'> </script>
没出现你这种情况啊!
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/Index.js"></script>
这是我的,这样在我的那个工程下一切正常,你是不是路径搞错了,你那样写好像 不对
src='${pageContext.request.contextPath }/dwr/interface/Ajax.js'></script>
<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 }/public/js/head.js"></script>这样也可以....就是但是出这样的错...而且诡异的地方在于...本地测试..两个项目都没问题....服务器上...一个项目可以...另外一个项目却出这个问题了....灵异时间啊....代码这里我想应该是没错的...但是错在哪里呢....头大啊.....