mseyfarth
Elite Observer

Stacktrace / Error bei Verwendung eines GomIncludeValueProvider-Moduls (für Combobox)

Jump to solution

Hallo zusammen,

ich benötige dringend Eure Unterstützung.

Ich befülle eine Combobox über einen GomIncludeValueProvider

CMS

      <CMS_INPUT_COMBOBOX name="sv_slot_name" editable="no" hFill="yes" singleLine="no" useLanguages="no">

        <CMS_INCLUDE_OPTIONS type="public">

          <NAME>SlotNames</NAME>

        </CMS_INCLUDE_OPTIONS>

        <LANGINFOS>

          <LANGINFO lang="*" label="Slot"/>

        </LANGINFOS>

      </CMS_INPUT_COMBOBOX>

Module.xml

<public>

<name>SlotNames</name>

<displayname>Slot Names Service</displayname>

<description>Service which returns a list of slot Names</description>

<class>xxx.service.serviceImpl.SlotNameProviderService</class>

</public>

Die Pflege und auch die Generierung funktionieren tadellos.

Allerdings sieht das bei der internen Vorschau / bzw. wenn ich das Auge zur Darstellung im Browser klicke ganz anders aus.

Hier bekomme ich nämlich einen Error und einen Stacktrace

14.11.2019 13:12:07.749 ERROR (): java.lang.IllegalStateException: loading of public type 'SlotNames' failed, type de.espirit.firstspirit.access.store.templatestore.gom.GomIncludeValueProvider

FSVersion=5.2.180806.77558#5617;JDK=1.8.0_191 64bit Oracle Corporation;OS=Linux 4.1.38-50-default amd64;Date=14.11.2019 13:03:19 java.lang.IllegalStateException: loading of public type 'SlotNames' failed, type de.espirit.firstspirit.access.store.templatestore.gom.GomIncludeValueProvider at de.espirit.firstspirit.server.module.ModuleManagerProxy$ClientModuleManager.getPublicClass(ModuleManagerProxy.java:245) at de.espirit.firstspirit.agency.ModuleAgentImpl.getTypeForName(ModuleAgentImpl.java:41) at de.espirit.firstspirit.access.store.templatestore.gom.HotspotValueProvider.getValueProvider(HotspotValueProvider.java:59) at de.espirit.firstspirit.access.store.templatestore.gom.HotspotValueProvider.getValueProvider(HotspotValueProvider.java:53) at de.espirit.firstspirit.access.store.templatestore.gom.HotspotValueProvider.getValues(HotspotValueProvider.java:46) at de.espirit.firstspirit.access.store.templatestore.gom.GomIncludeOptions$ListOptionAdapter.getValues(GomIncludeOptions.java:318) at de.espirit.firstspirit.access.store.templatestore.gom.GomIncludeOptions$ListOptionAdapter.size(GomIncludeOptions.java:334) at java.util.AbstractList$Itr.hasNext(AbstractList.java:351) at de.espirit.firstspirit.client.access.editor.ListOptionModel.(ListOptionModel.java:43) at de.espirit.firstspirit.client.access.editor.ListOptionModel.(ListOptionModel.java:35) at

...

Wenn ich das Modul auf meinem Lokalen FS Server installiere habe ich diese Probleme nicht. Nur auf dem Produktivsystem

Ich habe bereits alle Configs im Servermanager verglichen, sowohl globale als auch projektspezifische.

Hat jemand eine Idee wo das Problem noch hängen könnte, welche Config ich übersehen haben könnte?

Der ganze Spaß muss noch im Content Creator funktionieren. Da habe ich das bisher noch nicht getestet.

Danke und Gruß

Matthias

0 Kudos
1 Solution

Accepted Solutions

Hallo Michael,

nach einiger Zeit des nichts Tun hat sich das Problem von alleine behoben.

Die einzige Änderung, die in den letzten Tagen passierte, ist das der Server neu gestartet wurde.

Der Neustart muss das Problem gelöst haben.

ich verstehe zwar die Logik dahinter kein bisschen, aber hey, solange es funktioniert.

Ich danke trotzdem sehr für Deine Unterstützung.

Gruß

Matthias

View solution in original post

0 Kudos
7 Replies
mbergmann
Crownpeak employee

Hallo Matthias,

die Ressource wird aber über eine <webApp>-Komponente in die Vorschau-WebApp deployt oder? Die beiden FS-Versionen (lokal vs. Produktiv) sind gleich? Nutzt Du ggf. lokal den internen Jetty und auf dem Produktivsystem einen Tomcat?

Bitte poste doch auch mal die relevanten Teile der module.xml.

Viele Grüße

Michael

0 Kudos

Hallo Michael,

  • Der lokale und produktive FirstSpirit laufen beide unter der gleichen Version (2018-08, 5.2.180806)
  • Java-Version PRD: 1.8.0_191 Oracle Corporation, Lokal: 1.8.0_181 Oracle Corporation
  • OS PRD: Linux, Lokal: Windows
  • Ich habe das Modul nur als Public Komponente installiert, nicht als WebApp
  • Das Modul beinhaltet noch einen zweiten Service, der für verschiedene Dinge verwendet wird.

<?xml version="1.0" encoding="UTF-8"?>

<module>

<name>Some Module Name</name>

<version>${project.version}</version>

<description>Service which fetches its content from some other Services</description>

<vendor>Firma xy</vendor>

<components>

  <service>

   <name>someService</name>

   <description>Service for fetching data</description>

   <class>xxx.service.serviceImpl.DataProviderServiceImpl</class>

   <resources>

    <resource name="some-service">lib/${project.artifactId}-${project.version}-jar-with-dependencies.jar</resource>

   </resources>

  </service>

  <public>

   <name>SlotNames</name>

   <displayname>Slot Names Service</displayname>

   <description>Service which returns a list of slot Names</description>

   <class>xxx.service.serviceImpl.SlotNameProviderService</class>

  </public>

</components>

</module>

Der SlotNameProviderService.class ist dann eine ganz einfache Klasse, der die Interface-Funktionen vom GomIncludeValueProvider implementiert.

* Lokal wie produktiv wird derzeit der interne Jetty verwendet.

Danke und Gruß

Matthias

0 Kudos

Hallo Matthias,

bitte versuche es mal mit einer <webApp>-Komponente, so dass die Klasse(n) auch in der Preview-WebApp verfügbar sind. In der CC-WebApp wirst Du sie wohl auch brauchen.

Viele Grüße

Michael

0 Kudos

Hallo Michael,

gibt es eine Doku, wie ich eine Web-App korrekt erstelle?

So wie es aussieht brauche ich ja auch eine web.xml

Ich habe keine Ahnung wie die im FirstSpirit Umfeld aussehen muss, dass mein Modul funktioniert.

Gruß

Matthias

0 Kudos

Hallo Matthias,

da in diesem Fall die WebApp-Komponente nur dazu dient, jar-Ressourcen mitzubringen ist die extrem simpel. Hier mal am Beispiel anhand von Ausschnitten der Advanced Schulung (DTA):

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>DTA WebApp</display-name>

</web-app>

In der Module.xml sieht das dann so aus:

<module>

...

     <components>

     ...

          <web-app scopes="global,project">

             <name>SomeName</name>

             <web-resources>

                  <resource name="..." version="...">lib/${project.artifactId}-${project.version}-jar-with-dependencies.jar</resource>

             </web-resources>

             <web-xml>web/web.xml</web-xml>

        </web-app>

          ...

     </components>

...

</module>

Der Pfad der bei <web-xml> steht ist dabei der Pfad innerhalb des FSMs. Die scopes steuern, ob man die WebApp-Komponente nur projektlokalen oder auch den "allgemeinen" WebApps hinzufügen kann oder beides.

Du musst dann natürlich die WebApp-Komponente auch den passenden WebApps hinzufügen über den ServerManager.

Viele Grüße

Michael

0 Kudos

Hallo Michael,

nach einiger Zeit des nichts Tun hat sich das Problem von alleine behoben.

Die einzige Änderung, die in den letzten Tagen passierte, ist das der Server neu gestartet wurde.

Der Neustart muss das Problem gelöst haben.

ich verstehe zwar die Logik dahinter kein bisschen, aber hey, solange es funktioniert.

Ich danke trotzdem sehr für Deine Unterstützung.

Gruß

Matthias

0 Kudos

Hallo Matthias,

es kann sein dass das trotzdem auftritt wenn ihr irgendwann auf einen Tomcat wechselt - der Jetty ist ja für den Produktivbetrieb eh nicht empfohlen und der interne Jetty sogar abgekündigt. Speziell der interne verhält sich teilweise etwas anders was das ClassLoading betrifft.

Aber dann weißt Du ja jetzt was zu tun ist 😉

Viele Grüße

Michael

0 Kudos