I assume that getUserData () is not overridden, but a new method (currently it cannot be viewed). This is not something you can do when overriding a service. Instead, you will have to add a new service and make it available to the portal.
Remember that custom (“connected”) jsp is running in the portal classloader, and your overloaded service is running in the hookloader. Thus, if you create a new service and provide service.jar for Liferay (for example, in the global classpath), you can call it from the JSP. The Liferay Services interface cannot be extended through an overloaded service.
In case getUserData () is already in the interface (as I said, I can’t look at the moment), you just need to call CalendarLocalServiceUtil from jsp and it will be delegated to your shell.
Olaf kock
source share