Warning: A non-numeric value encountered in /home/ricston2/public_html/blogarchive/wp-content/themes/Divi/functions.php on line 5766

I was working with Component Bindings this week and ran into an unusual error. I had a simple class that had a single method which accepts a String parameter. I had a test case that I was building around the class and around its use within a service in Mule. All worked well. Then I tried to add the element to the component like so:


	
		
	
	
		
			
		
	

It all looks innocent enough. I want to be able to interact with the keyMapping endpoint from within my component and so I wanted to bind it to the KeyMappingInterface Java interface. The config is valid but when running the tests I had, I kept seeing this exception:

Exception stack is:
1. Could not find entry point on: "com.ricston.tests.
ProductUpdateServiceComponent" with arguments:
"{interface com.ricston.tests.KeyMappingInterface}"
 (org.mule.model.resolvers.NoSatisfiableMethodsException)
  org.mule.component.DefaultLifecycleAdapter:274
(http://www.mulesource.org/docs/site/current2/apidocs/
org/mule/model/resolvers/NoSatisfiableMethodsException.html)
**********************************************

This had me puzzled for awhile. Why was my entry-point resolver trying to use the interface I’d defined in the <binding/> element? This didn’t make sense.
I tried configuring the reflection-entry-point-resolver to make sure that the Mule server would identify the right method. That didn’t work.
I tried using a method-entry-point-resolver to invoke the appropriate method. That didn’t work either.
I removed the <binding/> element and all my tests passed.

I stared at Eclipse for awhile, puzzled at this. One of my colleagues, Alan Cassar, alerted me to a possible hitch though – he asked me to make sure that the Java interface I was trying to bind was clearly defined in my Java class and had getter and setter methods.

Sure enough, I had not got this far yet and it was simple enough to add this to my component:

	private KeyMappingInterface KeyMapping;

	public KeyMappingInterface getKeyMapping() {
		return KeyMapping;
	}

	public void setKeyMapping(KeyMappingInterface keyMapping) {
		KeyMapping = keyMapping;
	}

Everything worked!

I’m not sure why I had this problem but intend to get to the bottom of this. More information posted once I have it. if any of you have encountered this before, drop me a note in the comments below and maybe we’ll get to the bottom of this.