Solved

DWR and Struts Error - dwr is undefined...

Posted on 2007-11-16
12
3,173 Views
Last Modified: 2008-02-01
hi all,

i had integreated DWR in my struts application.. it was working few days back.. now when i access the page which is integratted DWR is giving me an error "dwr is undefined"...

also i am getting the default error message on the browser when i install sample dwr package...

i am using tomcat 5.5., java 1.5 .. i did not change anyting on sever....

what to do?
0
Comment
Question by:Loganathan Natarajan
  • 6
  • 5
12 Comments
 
LVL 35

Expert Comment

by:TimYates
ID: 20311346
What version of DWR are you using?

Can you show your script including tags from your jsps?

I believe from v1 to v2 the way you call the dwr javascript changed name, so I am guessing this is your problem
0
 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20311361
oh ok.. i will check it... and let u know
0
 
LVL 35

Expert Comment

by:TimYates
ID: 20311374
Also, can you post the line which is causing the error?  (if you still get an error after checking the version of dwr is right on the webserver?) :-)

Cheers

(and fingers crossed)

Tim
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20311477
error occurs in dwr.util.removeAllRows ...

i think i am using DWR 1.0 ... my dwr.xml top lines are,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>

      <allow>
            <create creator="new" javascript="ChildEditAction">
                  <param name="class" value="com.isw.struts.action.ChildEditAction" />
            

etc.,,,
// Used to fill the table using an asynchronous request
function fillSponsorsLookup(startWith) {	
	/* Asynchronous rquest to Server for the results */
	var sponsors=null;
	SponsorManager.getSponsorBeginsWith(startWith, function (sponsors) {
		dwr.util.removeAllRows("sponsorsTable", {filter:function (tr) {
			return (tr.id != "pattern");
		}});
    	// Delete all the rows except for the "pattern" row
		
    	// Create a new set cloned from the pattern row
		var sponsor, id;
		if (sponsors.length == 0) 
		{
			//alert("There are no records matching your search ! ");
			var el=$('noRecords');
			el.style.visibility = "visible";
			$('searchProgress').style.visibility="hidden";
			return false;
		}
		else
		{
			var el=$('noRecords');
			el.style.visibility = "hidden"
		}	
		
		for (var i = 0; i < sponsors.length; i++) 
		{
			sponsor = sponsors[i];
			id = sponsor.spoId;
			dwr.util.cloneNode("pattern", {idSuffix:id});
			dwr.util.setValue("spName" + id, (sponsor.spoLastname+" "+sponsor.spoFirstname));
			//$("chk").value = id;
			$("pattern" + id).style.display = "";
		}
		$('searchProgress').style.visibility="hidden";
	});
}

Open in new window

0
 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20311495
actually everthing was working perfect two days before.. suddenly now the dwr undefined error is occuring.. ..also i am getting the below error when i run the dwr testing program...
*************************************
Missing DWR Javascript Functions
This is a fairly advanced page that tests DWR to check that everything is setup properly for you.

It appears that you may be attempting to run DWR outside a servlet container (possibly using a file: URL). We think this because this page has missing Javascript functions that should have been produced by DWR. To fix the problem please use DWR from within a servlet container.

If this is not the cause of the problem, please report it to the DWR mailing list, including your browser, server, OS configuration and any error messages that appeared either in the browser (including the Javascript console if one exists) and the server console log.

DWR is testing installation ...
This is a fairly advanced page that tests DWR. If you can see this message for a prolonged period of time then you should check the following:

Can you see the test pages?
If not it is likely that DWR has not deployed in your web server properly; Check the web server console and log files for error messages.
If you can see the test pages then DWR is loaded but is something is preventing DWR working. Check your browser Javascript console for error messages, or see the main DWR website for more information.
If none of these steps fixes the error, please report it to the DWR mailing list, including your browser, server, OS configuration and any error messages that appeared either in the browser (including the Javascript console if one exists) and the server console log.

For general information about DWR see:

The main DWR website.
Joe Walker's blog.
The DWR page at Wikipedia.
0
 
LVL 35

Expert Comment

by:TimYates
ID: 20311729
Try this...  This is the v1 remove all rows...

I *think* the dwr.util.* stuff came with v2.0
DWRUtil.removeAllRows( "sponsorsTable", { filter: function( tr ) {
                       return (tr.id != "pattern");
                     } } ) ;

Open in new window

0
 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20311817
sorry.. i'm using DWR 2.0.. as my code is correct with the line... will there be any installation problem..?
0
 
LVL 35

Expert Comment

by:TimYates
ID: 20312480
Not sure what you mean by "installation problem"?

Are you loading the dwr javascript before you load your own javascript?

Are you sure all the dwr javascript files are loading?

Can you post the <script> tags from your page?
0
 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20313031
the below are the sample code,
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>DWR - Test Home</title>
  <script type='text/javascript' src='dwr/interface/Test.js'></script>
  <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
  <script>
    function init() {
      // This turns off the no-javascript message
      document.getElementById("start").style.display = "none";
	alert(window.DWREngine);
alert(window.DWRUtil);
 
      // This checks for file: URLs and loading problems
      if (window.DWREngine == null || window.DWRUtil == null) {
        document.getElementById("file").style.display = "block";
        return;
      }
      // DWR setup
      DWREngine.setErrorHandler(function(message) { alert(message); });
      DWREngine.setWarningHandler(function(message) { alert(message); });
      DWRUtil.useLoadingMessage();
      // Turn on the generic error div
      $("error").style.display = "block";
      // Load a message from the server
      Test.getInsert(load);
    }
 
    function load(data) {
      $("error").style.display = "none";
      DWRUtil.setValue("reply", data);
      $("reply").style.display = "block";
    }
  </script>
</head>
 
<body onload="init()">
 
<div id="start">
  <h1>DWR is testing installation ...</h1>
  <p>
    DWR uses Javascript to make some initial checks. If you can see this message
    then either you are a very fast reader, or Javascript is not working
    properly in your browser.
  </p>
  <p>
    Since AJAX requires Javascript, you will need to enable Javascript in your
    browser before you can test DWR. Some very old browsers like IE 4.0 have
    very out of date support for Javascript and are currently unsupported.
    Please upgrade your browser.
  </p>
</div>
 
<div id="reply" style="display:none;">
  <h1>DWR is partially working</h1>
  <p>
    DWR has received test data from the server, however for some reason this
    data was mangled. Please report this error to the
    <a href="http://getahead.ltd.uk/dwr/support">DWR mailing list</a>, including
    your browser, server, OS configuration and any error messages that appeared
    either in the browser (including the Javascript console if one exists) and
    the server console log.
  </p>
</div>
 
<div id="file" style="display:none;">
  <h1>Missing DWR Javascript Functions</h1>
  <p>
    This is a fairly advanced page that tests DWR to check that everything is
    setup properly for you.
  </p>
  <p>
    It appears that you may be attempting to run DWR outside a servlet container
    (possibly using a file: URL). We think this because this page has missing
    Javascript functions that should have been produced by DWR. To fix the
    problem please use DWR from within a servlet container.
  </p>
  <p>
    If this is not the cause of the problem, please report it to the
    <a href="http://getahead.ltd.uk/dwr/support">DWR mailing list</a>, including
    your browser, server, OS configuration and any error messages that appeared
    either in the browser (including the Javascript console if one exists) and
    the server console log.
  </p>
</div>
 
<div id="error" style="display:none;">
  <h1>DWR is testing installation ...</h1>
  <p>
    This is a fairly advanced page that tests DWR. If you can see this message
    for a prolonged period of time then you should check the following:
  </p>
  <ul>
    <li>
      Can you see the <a href="dwr/">test pages</a>?<br/>
      If not it is likely that DWR has not deployed in your web server properly;
      Check the web server console and log files for error messages.
    </li>
    <li>
      If you can see the <a href="dwr/">test pages</a> then DWR is loaded but is
      something is preventing DWR working. Check your browser Javascript console
      for error messages, or see the <a href="http://getahead.ltd.uk">main
      DWR website</a> for more information.
    </li>
  </ul>
  <p>
    If none of these steps fixes the error, please report it to the
    <a href="http://getahead.ltd.uk/dwr/support">DWR mailing list</a>, including
    your browser, server, OS configuration and any error messages that appeared
    either in the browser (including the Javascript console if one exists) and
    the server console log.
  </p>
</div>
 
<div id="more">
  <p>
    For general information about DWR see:
  </p>
  <ul>
    <li>The <a href="http://getahead.ltd.uk/dwr/">main DWR website</a>.</li>
    <li><a href="http://getahead.ltd.uk/blog/joe/">Joe Walker's blog</a>.</li>
    <li>The <a href="http://en.wikipedia.org/wiki/DWR">DWR page</a> at Wikipedia.</li>
  </ul>
</div>
 
</body>
</html>

Open in new window

0
 
LVL 35

Accepted Solution

by:
TimYates earned 500 total points
ID: 20313154
You seem to have a mismash of v1.0 and v2.0 calls in there...

eg:

      DWREngine.setErrorHandler(function(message) { alert(message); });

in v2.0 is:

      dwr.engine.setErrorHandler( function(message) { alert(message); } ) ;

Where did you get the file from?  Is it out of the v1.0 download?

Where's that call you said was failing before?
0
 
LVL 36

Author Comment

by:Loganathan Natarajan
ID: 20313282
hi TimYates... thanks for helping me to fix this issue...

the below is my actual error page code... when i enter some value in the text box to get search results.... (LOOK-UP feature)



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="/SITE/includes/SITE_style.css" rel="stylesheet" type="text/css">
</head>
<script type='text/javascript' src='/SITE/dwr/engine.js'></script>
<script type='text/javascript' src='/SITE/dwr/util.js'></script>
<script type='text/javascript' src='/SITE/dwr/interface/SponsorManager.js'> </script>
<script type='text/javascript' src='/SITE/dwr/interface/SponsorEditForm.js'></script>
<script type='text/javascript' src='/SITE/dwr/interface/FundEditAction.js'> </script>
<script type='text/javascript' src='/SITE/dwr/interface/FundEditForm.js'></script>
 
<script language="javascript" src="/SITE/includes/lookup.js"></script>
<body>
     <script language="javascript" type="text/javascript">
 
 
 function Project( ) {
	var frm=document.addFund;
	
	if(frm.select2.value=="PR")
	{
		frm.select3.disabled=false;
	}
	else
	{
		frm.select3.disabled=true;
		frm.select3.value="";
	}
 }
 
 
function formsubmit(frmName)
{
	if(TextValidate(frmName.funPaymentdate, '<bean:message key="fund.paymentDate"/>') == false) return false;
	if(validateCombo('funSponsorid.spoId','<bean:message key="fund.selectSponsor"/>')==false)return false;
	if(validateCombo('funPaymentmodeid.pmtId','<bean:message key="fund.selectPaymentMode"/>')==false)return false;
	if(TextValidate(frmName.strfunAmount, '<bean:message key="fund.amountOnly"/>') == false) return false;
	if(TextValidate(frmName.funPurpose, '<bean:message key="fund.purpose"/>') == false) return false;																		
	if(document.fundEditForm.funPurpose.value == 'Select')
	{
		alert('<bean:message key="fund.selectPurpose"/>');
		return false;
	}
	if(CurrentdateValidate(frmName.funPaymentdate,'<bean:message key="fund.paymentDate"/>') == false) return false
	var itemChecked=false;
	for(var i=0; i<frmName.funReciptneeded.length; i++)
	{
		if(frmName.funReciptneeded[i].checked)
		{
			itemChecked=true;
			break;
		}
	}
	if(document.fundEditForm.funPurpose.value == 'Project')
		if(validateCombo('projectId','<bean:message key="fund.selectProject"/>')==false)return false;	
	//if(document.fundEditForm.projectId.value != 'Select' && document.fundEditForm.funPurpose.value != 'Individual Sponsorship' && document.fundEditForm.funPurpose.value != 'Collective Sponsorship' && document.fundEditForm.funPurpose.value != 'Donation')	
		//if(validateCombo('funProjectid.sproId','Please Enter the Sub-Project')==false)return false;
	if(!itemChecked)
	{
		alert('<bean:message key="fund.selectReceiptNeeded"/>');
		return false;
	}
	
	
	frmName.submit();
	frmName.Printbutton.disabled = true;
}
 
 
function validateCombo(cntrlName,msg){
	var cmbIndex=0;
	var frm = document.fundEditForm;  
	cmbIndex = getComboIndex(frm,cntrlName);
	if(frm.elements[cmbIndex].value==0 || frm.elements[cmbIndex].value.length==0){
		frm.elements[cmbIndex].focus();
		alert(msg);
		return false;
	}	
}
 
function check()
{
	var name = "Project";
	if(document.fundEditForm.funPurpose.value == name)
	{
		var cmbIndex=0;
		var cntrlName1 = "projectId";
		var cntrlName2 = "funProjectid.sproId";
		var frm = document.fundEditForm;  
		cmbIndex = getComboIndex(frm,cntrlName1);
		frm.elements[cmbIndex].disabled=false;
		frm.elements[cmbIndex].value = 0;
		cmbIndex = getComboIndex(frm,cntrlName2);
		frm.elements[cmbIndex].disabled=false;
		frm.elements[cmbIndex].value = 0;								
		return false;
	}
	else
	{
		var cmbIndex=0;
		var cntrlName1 = "projectId";
		var cntrlName2 = "funProjectid.sproId";
		var frm = document.fundEditForm;  
		cmbIndex = getComboIndex(frm,cntrlName1);
		frm.elements[cmbIndex].disabled=true;
		frm.elements[cmbIndex].value = 0;
		cmbIndex = getComboIndex(frm,cntrlName2);
		frm.elements[cmbIndex].disabled=true;
		frm.elements[cmbIndex].value = 0;								
		return false;
	}
}
 
 
function OpenWindow(strHref,windowname) {
	window.open("/SITE/fund/fund_printreceipt.jsp", "SITE",
	"toolbar=no,resizable=0,menubar=no,location=no,scrollbars=yes,width=600,height=175,top=0,left=30");		
}
 
 
function AmountCheck(txtCtrl) {
	Remove_Spaces(txtCtrl);
	var fLength = txtCtrl.value.length;
	if (fLength == 0) {
		return false;
	}	
	// Required but check Empty
	if (txtCtrl.value == "" || isNaN(txtCtrl.value)){ 	
			alert('<bean:message key="fund.validAmount"/>');		
			txtCtrl.focus();
			txtCtrl.select();
			return false;	
	}		
}
 
 
function onlyDigitsAnddot()
{
	var s = document.fundEditForm.strfunAmount.value.split('.');
	if (s.length > 2){
		alert('<bean:message key="fund.morethan1dot"/>');
		fundEditForm.strfunAmount.focus();
		return false;
	}
	if(s.length>1)
	{
			if(s[1].length > 2){
				alert('<bean:message key="fund.onlytwodegits"/>');
				fundEditForm.strfunAmount.focus();
				return false;
			}
			if(s[1].length < 2){
				alert('<bean:message key="fund.twodigits"/>');
				fundEditForm.strfunAmount.focus();
				return false;
			}
			if(s[0].length > 7) {
				alert('<bean:message key="fund.budgetamount"/>');
				fundEditForm.strfunAmount.focus();
				return false;
			}
	}
 
}
 
 
function onlyDigitsAnddot()
{
 
	var s = document.fundEditForm.strfunAmount.value.split('.');
	if (s.length > 2){
		alert('<bean:message key="fund.morethan1dot"/>');
		document.fundEditForm.strfunAmount.focus();
		return false;
	}
	if(s.length>1)
	{
			if(s[1].length > 2){
				alert('<bean:message key="fund.onlytwodegits"/>');
				document.fundEditForm.strfunAmount.focus();
				return false;
			}
			if(s[1].length < 2){
				alert('<bean:message key="fund.twodigits"/>');
				document.fundEditForm.strfunAmount.focus();
				return false;
			}
			if(s[0].length > 7) {
				alert('<bean:message key="fund.budgetamount"/>');
				document.fundEditForm.strfunAmount.focus();
				return false;
			}
	}
 
}
 
function digitsalone(txtCtrl)
{
	NumberValidateCheck(eval(txtCtrl));
 
}
 
function cancelProcess()
{
	var frmName = document.fundEditForm;
	cmbIndex = getComboIndex(frmName,'funSponsorid.spoId');
	cmbIndex1 = getComboIndex(frmName,'funPaymentmodeid.pmtId');
	if ((frmName.funPaymentdate.value != "") || (frmName.strfunAmount.value != "") || 
	(frmName.elements[cmbIndex].value != 0) || (frmName.elements[cmbIndex1].value != 0) || 
	(frmName.funPurpose.value != "Select")) 
	{
		if(confirm('<bean:message key="cancelDetails"/>')) {
			window.location='/SITE/listFund.do?method=listFund';
		}
	}
	else{
		window.location='/SITE/listFund.do?method=listFund';
	}
}								
function getComboIndex(frmname,ctrlname) { 
	for (var i=0; i < frmname.elements.length; i++){
	   if (frmname.elements[i].name == ctrlname){
		return i;
	   }
	}
}
function getPurpose()
{
	var cmbIndex=0;
	var frm = window.opener.document.fundEditForm;  
	cmbIndex = getComboIndex(frm,'funSponsorid.spoId');
	frm.elements[cmbIndex].value
	var comboIndexId = frm.elements[cmbIndex].value;	
	
	FundEditAction.getSponsorshipById(comboIndexId, function(price1) { 
	if(price1 == "Child Individual")
		frm.funPurpose.value="Individual Sponsorship";
	if(price1 == "Child Collective")
		frm.funPurpose.value="Collective Sponsorship"; 
	if(price1 == "Donation")
		frm.funPurpose.value="Donation";
	 });
 
}
function change() {
		//document.fundEditForm.elements["do"].value="getSubProjectCombo";
		//document.fundEditForm.submit();
		
		var cboName = "funProjectid.sproId";
		var projectId = document.fundEditForm.projectId.value;
		DWRUtil.removeAllOptions(cboName);
	var comboBox = document.getElementById(cboName);
	var oOption = document.createElement("OPTION"); 
		
		//Default Option Selected 
	oOption.value = "0";
	oOption.text = "Select";
	oOption.selected = true;
	addBIOption(comboBox,oOption);
//	comboBox.add(oOption);
	FundEditAction.getSubProjectCombo(projectId, function (subprojects) {
		if(subprojects.length !=0 )
		{
			$('noSubproject').style.visibility="hidden";
			for (var i = 0; i < subprojects.length; i++) {
				var subproject = subprojects[i];
				var oOption = document.createElement("OPTION");
				oOption.value = subprojects[i].sproId;
				oOption.text = subprojects[i].sproName;
				addBIOption(comboBox,oOption);
			//comboBox.add(oOption);
			}
		}
		else
		{
			$('noSubproject').style.visibility="visible";
		}
	});
}
 
function addBIOption(selectElement,newOption)
 {
	try 
	{
		selectElement.add(newOption,null);
	}	
	catch (e)
	{
		selectElement.add(newOption);
	}
}
</script>
 
<fieldset class="fieldset">  
							<legend><bean:message key="fund.details"/></legend>
	  <table width="100%" border="0" cellpadding="1" class="tabletext1" id="sponsorsHeader">
	  <tr>
		  <td width="88%" height="26" ><b><bean:message key="sponsor.search"/> </b>
		    <input name="spBeginWith" type="text" class="textbox" id="spBeginWith" onKeyUp="checkValue(this.value);" size="30" maxlength="100"></td>
			
	      <td width="12%" ><a href="javascript:self.close()">X</a> </td>
	  </tr>
	  <tr><td height="30" colspan="2" class="formdescription">  
	     (Please type the search text in the Text box, the results will be shown in the below)
		
		 </td>
	    </tr>		
	</table>
</fieldset>
 
  <table width="100%" border="0" cellpadding="1" id="sponsorsBody"> 
	  <tbody id="sponsorsTable" >
		  <tr id="pattern" style="background-color: rgb(255, 251, 249) ;display:none;" onMouseOver="this.style.backgroundColor = '#F5F4E9'" onMouseOut="this.style.backgroundColor =''" align="left" bgcolor="#fffbf9" valign="top" >
		  <td width="89%" class="tabletext1">&nbsp;<a href="#" onClick="setSelectedValue('funSponsorid.spoId',this.id.substring(6));getPurpose();" id="spName" class="topmenublue"></a></td>			
		  </tr>
    </tbody>
	</table>	
	
 
</body>
</html>

Open in new window

0
 
LVL 3

Expert Comment

by:ss_p
ID: 20339607
did u try to do the DWR test to see if there are DWR calls beng handled

try

http://localhost:postno/app/dwr

you should be able to see your registered beans.

if not DWR is not loaded properly

let us know
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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

Suggested Solutions

Title # Comments Views Activity
default methods vs abstract class 1 118
bean mapper frameworks 5 63
lessBy10  challenge 15 95
maven not picking latest jar instead picking old jar from .m2 12 24
A project that enables an administrator to perform actions within a user session context not just at the time of login but any time later on day(s) or week(s) later.
Riverbed Technology's webinar discusses networking for the cloud era with simplified SD-WAN cloud connectivity.

820 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