DWR_HelloWorld之痛

1. 概述

目中使用DWR有一段时间了,但说来惭愧,自己还没手动配个DWR的HelloWorld,今日一试,问题颇多,可见事不

亲历亲为,终不知其中的滋味,特记录下来。

2. DWR配置

网上关于dwr的教程甚多,这里给出官网上的一个Tutorial,不在赘述:

 

http://directwebremoting.org/dwr/introduction/getting-started.html

 

 

dwr.xml

<dwr>
	<allow>
	<create creator="new" javascript="hellodwr">
		<param name="class" value="java.Hello"/>
	</create> 
    </allow>
</dwr>

 

3. 无奈的问题

理论上在浏览器里输入localhost:8080/项目发布名称/dwr 即可看到 可用的 dwr列表,但事实如图:


4. 调试

调试是辛苦的,但一定要注意方法,页面的信息太少,而tomcat中又没有打印出相关信息,因此想到配置log4j

 

引入 commons-logging-1.0.4.jar、log4j-1.2.12.jar,配置好log4j文件,如下:

 

 

 

启动tomcat,错误信息打印出来了......

 

2009-06-08 17:29:31,718 WARN [org.directwebremoting.util.LocalUtil] - <Error setting class=java.Hello on org.directwebremoting.create.NewCreator>
java.lang.IllegalArgumentException: Class not found: java.Hello
        at org.directwebremoting.create.NewCreator.setClass(NewCreator.java:48)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.directwebremoting.util.LocalUtil.setProperty(LocalUtil.java:628)
        at org.directwebremoting.util.LocalUtil.setParams(LocalUtil.java:587)
        at org.directwebremoting.impl.DefaultCreatorManager.addCreator(DefaultCreatorManager.java:74

.......

 

错误定位到了,说找不到 Hello 这个类,怪了?明明在 包 java下,怎么找不到呢?

 

查丫查,试丫试......无果。。。

 

5. 曙光

愤怒了,我把包 java 删除了,src下只留 hello.java,竟然好了,可我再给套上 java包 就又躺了....

 

6. 思考与结论

忽然意识到,dwr该不会去jre中java.*找 Hello吧,做实验,把 java换成 com,果然一切正常!

 

事实证明,给自己的类写包时要注意了,第一个包 出于种种考虑,莫要写 java,在这里 dwr就不认。

 

如果你配置 dwr 的helloword 一直报错是 class not found,那么有可能是类似的错误,需要查一下 dwr的源码

 

是如何找到这些类的,看来此处仍需要改进!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值