[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 867
  • Last Modified:

Js call Applet function with parameters problem

Hello all,

Thank you for your time.
I am in need of calling a java applet function from a JS function, that much I am able to do so far but if I need to pass a parameter to the function then I keep getting:
"java.lang.IllegalArgumentException: No method found matching name FileChecker and arguments [java.lang.String]]."
The JS funtion is sending a String and the Applet function is set to receive a String parameter so I dont know what could be wrong.

I tried following the guidance of http://www.woodger.ca/js_jvint.htm but did not work on my end.

Please note, the function without passing any parameter is working fine.

What could be wrong here??
// JS part:
<script type="text/javascript">
function testJava()
{
	var sInput = document.frmJava.input.value;
	var sFile = document.FileChecker.FileChecker(sInput);
	alert(sFile);
}
</script>
 
 
//
// Java function
public String FileChecker(java.lang.String sFile) 
{
	return "Ok I got the parameter: " + sFile;
}

Open in new window

0
mespinozae
Asked:
mespinozae
  • 4
  • 3
  • 2
1 Solution
 
CEHJCommented:
Did you name the applet 'FileChecker' in your html?
0
 
bugadaCommented:
This error happens beacause in your applet class FileChecker there is'nt a corrisponding method FileChecker.
If your goal is to access the contructor, then you can't. You must call a public method.

Something like that

/* frontend side */
 
function testJava()
{
        var sInput = document.frmJava.input.value;
        var sFile = document.FileChecker.getFile(sInput);
        alert(sFile);
}
 
/* in your java class, assuming a string type return value */
 
public class FileChecker ... {
 
   public String getFile(String input) {
      ...
      return theFile;
   }
}

Open in new window

0
 
CEHJCommented:
Also make sure you're using the very latest version of the applet - you might need to clear the cache to do that
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
mespinozaeAuthor Commented:
@CEHJ: Yeap, I did name the applet like that:


@bugada: I have my class named like that (and I recompile every time I test it to make sure I get the latest changes right)

Still no luck..

// html
<APPLET codebase="" name="FileChecker" id="FileChecker" archive="....

Open in new window

0
 
bugadaCommented:
Please reread carefully my post, and if yua have doubts take a look at this page:

http://www.rgagnon.com/javadetails/java-0170.html
0
 
bugadaCommented:
The problem is not the name of your class, that I presume is right. You must call a *public method* of that class.
You can't call the class constructor, because the class is initialized when the JVM is starting up.
0
 
CEHJCommented:
It certainly *looks* like a ctor but isn't - it returns String. Method names should be in camel case
0
 
mespinozaeAuthor Commented:
@bugada: Of course!!! Im sorry I didnt read carefully your message, that was the problem! I hadnt realized my method name was also the class name so it of course turned out to be the constructor... silly me!

Thank you both very much for you help!


0
 
bugadaCommented:
If it isn't a contructor,  it's really a BAD name for a java getter method.

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now