Solved

question on using dwr with spring

Posted on 2009-07-09
4
570 Views
Last Modified: 2012-08-14
This is my first time using dwr. I am using dwr 1.0 library and trying to integrate it with spring. I have a service class and a main AJAXUser class in which i am getting the bean name for my service layer through WebApplicationContextUtils and in the same AJAXUser class i am calling the service layer to get some values from the DB. Below you can see my configuration for dwr.xml.

EVerytime i run my JSP page and tries to click on a button which will call an Ajax function to output the values  i get a javascript error 'name cannot be null' and i get an exception in my console. I am sure that my service layer is defined properly in applicationContext.xml. It looks like the dwr.xml cannot instantiate my AJAXUser class.

<!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="AJAX">
 <param name="class" value="user.AJAXUser"></param>
 </create>
 </allow>
 </dwr> 
 
Error :-
 
WARNING: Method execution failed: 
java.lang.IllegalArgumentException: 'name' must not be null
	at org.springframework.util.Assert.notNull(Assert.java:112)
	at org.springframework.beans.factory.BeanFactoryUtils.transformedBeanName(BeanFactoryUtils.java:71)
	at org.springframework.beans.factory.support.AbstractBeanFactory.transformedBeanName(AbstractBeanFactory.java:799)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:733)
	at uk.ltd.getahead.dwr.create.SpringCreator.getInstance(SpringCreator.java:143)
	at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:181)
	at uk.ltd.getahead.dwr.impl.DefaultExecProcessor.handle(DefaultExecProcessor.java:48)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:81)
	at uk.ltd.getahead.dwr.AbstractDWRServlet.doPost(AbstractDWRServlet.java:162)

Open in new window

0
Comment
Question by:Micheal_Male
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 10

Expert Comment

by:mahome
ID: 24820772
If you are using Spring you use the param beanname and specfiy this name. Class is only used for creator "new".
So it have to be something like this:

Also have a look here: http://directwebremoting.org/dwr/server/integration/spring.html

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

Open in new window

0
 

Author Comment

by:Micheal_Male
ID: 24828370
Thank you mahome. I created a beanName by the name ajaxUser in my applicationContext and had the property set to my userService and now my class is getting compiled. I actually thought the beanname was the ACTUAL beanname of my controller class.

0
 
LVL 10

Accepted Solution

by:
mahome earned 250 total points
ID: 24837732
Yes it's a little bit confusing, as there are two ways. If you use the creator "new" (see snippet) it would be the classname, but in that case DWR would instantiate your class and not Spring. In the spring way it's not necessary to declare the class as the declaration of the spring bean already contains the class-info.

<create creator="new" javascript="AJAX">
    <param name="class" value="user.ajaxUser"/>
</create>

Open in new window

0
 

Author Closing Comment

by:Micheal_Male
ID: 31601951
Perfect explanation. Thanks
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question