MailPro and Servoy 7.3.0

Hi all,

I’m upgrading my solution from v6.0.9 to v7.3.0. In my onOpen method (“init_apps”) I put this line for enabling MailPro plugin:

plugins.MailPro.register('myCompany', 'myLicense');

The code works fine in Developer, but when I execute the solution in web client I receive this error message:

org.mozilla.javascript.EcmaError: TypeError: Cannot call method "register" of undefined (mysolution/scopes/myscope/init_apps#854)

Of course, MailPro jar is in plugins folder… Any ideas?

Looks like your plugin is not properly initialized. I bet it doesn’t even appear in the Solution Explorer.
It might be a dependency missing issue, or a NullPointer in the plugin code, have a look at your servoy log, there should be an exception in there ((/path/to/servoy/application_server/servoy_log.txt)

In v6.0.9 the solution works fine…

I’ve found this exception:

java.lang.reflect.InvocationTargetException 
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    	at java.lang.reflect.Method.invoke(Unknown Source) 
    	at com.servoy.j2db.scripting.PluginScope.get(PluginScope.java:116) 
    	at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:2141) 
    	at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1518) 
    	at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1505) 
    	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1408) 
    	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:837) 
    	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:158) 
    	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:406) 
    	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3204) 
    	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:156) 
    	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626) 
    	at com.servoy.j2db.scripting.ScopesScope.executeGlobalFunction(ScopesScope.java:164) 
    	at com.servoy.j2db.FormManager.makeSolutionSettings(FormManager.java:337) 
    	at com.servoy.j2db.server.headlessclient.WebFormManager.makeSolutionSettings(WebFormManager.java:78) 
    	at com.servoy.j2db.FormManager$1.run(FormManager.java:166) 
    	at com.servoy.j2db.server.headlessclient.EventsRunnable.run(EventsRunnable.java:58) 
    	at com.servoy.j2db.server.headlessclient.WebClient.executeEvents(WebClient.java:550) 
    	at com.servoy.j2db.server.headlessclient.EventsRunnable.run(EventsRunnable.java:70) 
    	at com.servoy.j2db.server.headlessclient.WebClient.executeEvents(WebClient.java:550) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.generateResponse(WebEventExecutor.java:678) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.onEvent(WebEventExecutor.java:405) 
    	at com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor$2.onEvent(WebEventExecutor.java:181) 
    	at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177) 
    	at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:312) 
    	at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:157) 
    	at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) 
    	at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 
    	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358) 
    	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465) 
    	at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 
    	at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) 
    	at com.servoy.j2db.server.servlets.Zt.doGet(Zt.java:7) 
    	at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) 
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) 
    	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 
    	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 
    	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394) 
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615) 
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    	at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.NoClassDefFoundError: com/drmaison/plugin/support/IPluginEssentials 
    	at java.lang.ClassLoader.defineClass1(Native Method) 
    	at java.lang.ClassLoader.defineClass(Unknown Source) 
    	at java.security.SecureClassLoader.defineClass(Unknown Source) 
    	at java.net.URLClassLoader.defineClass(Unknown Source) 
    	at java.net.URLClassLoader.access$100(Unknown Source) 
    	at java.net.URLClassLoader$1.run(Unknown Source) 
    	at java.net.URLClassLoader$1.run(Unknown Source) 
    	at java.security.AccessController.doPrivileged(Native Method) 
    	at java.net.URLClassLoader.findClass(Unknown Source) 
    	at java.lang.ClassLoader.loadClass(Unknown Source) 
    	at java.lang.ClassLoader.loadClass(Unknown Source) 
    	at com.drmaison.plugin.mailpro.MailPro.getScriptObject(MailPro.java:49) 
    	... 58 more 
    Caused by: java.lang.ClassNotFoundException: com.drmaison.plugin.support.IPluginEssentials 
    	at java.net.URLClassLoader$1.run(Unknown Source) 
    	at java.net.URLClassLoader$1.run(Unknown Source) 
    	at java.security.AccessController.doPrivileged(Native Method) 
    	at java.net.URLClassLoader.findClass(Unknown Source) 
    	at java.lang.ClassLoader.loadClass(Unknown Source) 
    	at java.lang.ClassLoader.loadClass(Unknown Source) 
    	... 70 more

But I don’t know what does it mean :(

Fix it!

I installed MailPro plugin simply moving jar files to plugins folders instead of using servoy plugins installer :oops: :oops:

I will have a look at that asap.

No problem, I reinstalled the plugin (using the installer) and it works fine