Executable funktioniert nicht im Webeditor
Author: drescher
Publication Date: 10/10/2014 7:25
Hallo,
ich integriere in dem Formlar eines Templates einen FS_Button der ein Executable in einem eigens entwickelten Modul ausführen soll.
Im SiteArchitekt funktioniert es wunderbar nur im ContentCreator erhalte ich ein Popup mit der Meldung "WebEdit client error occurred: Status code detection: 500 The call failed on the server; see server log for details".
Im Server-Log steht dieser Stacktrace:
WARN 10.10.2014 08:05:44.267 (/fs5webedit): Exception while dispatching incoming RPC call
FSVersion=5.1.209.63675#4044;JDK=1.7.0_17 64bit Oracle Corporation;OS=Linux 3.2.0-54-generic amd64;Date=10.10.2014 08:05:44
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract de.espirit.firstspirit.webedit.client.forms.FormScriptResult de.espirit.firstspirit.webedit.client.forms.StoreElementFormSe
rvice.executeScript(int,java.lang.String,de.espirit.firstspirit.webedit.client.forms.FormScriptSetup)' threw an unexpected exception: java.lang.IllegalStateException: loading of public type 'de.ams.push.fsm.
appcenter.executable.PushmanagerExecutable' failed, type de.espirit.firstspirit.access.script.Executable
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389)
at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService.logAndEncodeThrowable(PollSupportingWebeditService.java:208)
at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService.processCall(PollSupportingWebeditService.java:169)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at de.espirit.firstspirit.webedit.server.WebeditService.service(WebeditService.java:95)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1367)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doChain(WebAuthentication.java:689)
at de.espirit.firstspirit.webedit.server.ServiceAuthentication.doChain(ServiceAuthentication.java:33)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doFilter(WebAuthentication.java:552)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doFilter(WebAuthentication.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)
at de.espirit.firstspirit.webedit.server.BrowserCachingFilter.doFilter(BrowserCachingFilter.java:33)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
at de.espirit.firstspirit.server.jetty.JettyManagerImpl$FailSafeWebAppContext.doHandle(JettyManagerImpl.java:839)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:350)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalStateException: loading of public type 'de.ams.push.fsm.appcenter.executable.PushmanagerExecutable' failed, type de.espirit.firstspirit.access.script.Executable
at de.espirit.firstspirit.webedit.server.WebeditSpecialistsBroker$WebEditModuleAgent.getTypeForName(WebeditSpecialistsBroker.java:351)
at de.espirit.firstspirit.webedit.server.script.WebeditScriptUtil.execute(WebeditScriptUtil.java:74)
at de.espirit.firstspirit.webedit.server.forms.StoreElementFormServiceImpl.executeScript(StoreElementFormServiceImpl.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService$RPCInvoke.call(PollSupportingWebeditService.java:262)
at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService$ServiceCallPollFeedWrapper.call(PollSupportingWebeditService.java:378)
at de.espirit.firstspirit.webedit.server.concurrent.ExecutionManager$NamedCallable.call(ExecutionManager.java:136)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more
Caused by: java.lang.ClassNotFoundException: de.ams.push.fsm.appcenter.executable.PushmanagerExecutable
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at de.espirit.firstspirit.server.jetty.JettyClassLoader.loadClass(JettyClassLoader.java:94)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at de.espirit.firstspirit.server.jetty.JettyClassLoader.loadClass(JettyClassLoader.java:94)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at de.espirit.firstspirit.webedit.server.WebeditSpecialistsBroker$WebEditModuleAgent.getTypeForName(WebeditSpecialistsBroker.java:349)
... 14 more
ERROR 10.10.2014 08:05:44.391 (de.espirit.firstspirit.webedit.server.RemoteBatchLoggingServiceImpl): WebEdit client error occurred: Status code detection: 500 The call failed on the server; see server log for details
In der module.xml ist die Executable so definiert:
<public>
<name>PushmanagerExecutable</name>
<displayname>inApp|Marketing Manager Executable: to activate with fs_button</displayname>
<class>de.ams.push.fsm.appcenter.executable.PushmanagerExecutable</class>
</public>
Der Button ist im Formular so konfiguriert:
<FS_BUTTON
name="cs_iamm_create_campaign_button"
alwaysEnabled="yes"
hidden="no"
icon="media:inAppMarketingManager_icon"
onClick="class:de.ams.push.fsm.appcenter.executable.PushmanagerExecutable"
style="button"
useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Create campaign"/>
<LANGINFO lang="DE" label="Kampagne erstellen"/>
</LANGINFOS>
</FS_BUTTON>
Woran könnte es liegen, dass es im SiteArchitekt funktioniert jedoch nicht im ContentCreator?
Tags: module, module_development, webedit
-
Author: mbergmann - 10/10/2014 8:47
Hallo,
Ursache ist hier folgendes:
Caused by: java.lang.ClassNotFoundException:
de.ams.push.fsm.appcenter.executable.PushmanagerExecutable
Das Executable ist im Contentcreator unbekannt. Hier muss man in der module.xml zusätzlich eine WebApp mit dem jar das die Klasse enthält als Web-Ressource definieren und diese im ContentCreator hinzufügen.
Viele Grüße
Michael
0 -
Author: MichaelaReydt - 10/20/2014 12:14
Hallo,
benötigst du noch weitere Hilfe oder hat dir Michaels Antwort bereits geholfen?
In diesem Fall wäre es nett, wenn du seine "richtige Antwort" entsprechend markierst.
Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.
Viele Grüße
Michaela
0 -
Author: drescher - 2/6/2015 10:08
Der Fehler besteht leider noch.
Ich habe in der module.xml nun eine zusätzliche Webapp mit einem jar-file, die die Klasse de.ams.push.fsm.appcenter.executable.PushmanagerExecutable enthält hinzugefügt.
Die Konfiguration sieht so aus:
<module>
...
<components>
...
<web-app>
<name>inAPP Marketing-Manager WebClient Extensions</name>
<displayname>inAPP Marketing-Manager WebClient Extensions: for WebClient 5</displayname>
<class>de.ams.push.fsm.projectapp.PushmanagerWebApp</class>
<web-xml>web.xml</web-xml>
<resources>
<resource>lib/pushmanager-fsm-1.5.0-SNAPSHOT-jar-with-dependencies.jar</resource>
</resources>
<web-resources>
<resource>lib/pushmanager-fsm-1.5.0-SNAPSHOT-jar-with-dependencies.jar</resource>
</web-resources>
</web-app>
...
0 -
Author: mbergmann - 2/8/2015 16:11
Hallo,
Nur sicherheitshalber: Wurde die WepApp auch dem CC-Web-Kontext hinzugefügt und entsprechend deployed (oberer "Aktualisieren"-Button)?
Falls ja hilft es ggf. beim onClick nicht den Klassennamen sondern den Komponentennamen aus der module.xml einzutragen, also
<FS_BUTTON
...
onClick="class:PushmanagerExecutable"
...
</FS_BUTTON>
Viele Grüße
Michael
0 -
Author: thmarx - 2/23/2015 9:59
Hallo,
benötigst du noch weitere Hilfe oder hat dir Michaels Antwort bereits geholfen?
In diesem Fall wäre es nett, wenn du seine "richtige Antwort" entsprechend markierst.
Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.
Viele Grüße
Thorsten
0
Please sign in to leave a comment.
Comments
5 comments