ana_oleski
Returning Observer

Spring Boot in der Vorschau

Jump to solution

Hallo Community,

ich habe unsere Webanwendung von Spring ganz alt auf Spring Boot 2.2.2 aktualisiert und ich habe das Problem, dass es auch in der FirstSpirit Vorschau laufen müsste, weil wir JSP Seiten haben, die sich auf die Existenz diverse Filter und co verlassen.

Also als Web-App Komponente in preview /SiteArchitect und webedit/ContentCreator.

Und da passiert folgendes:

1) auf dem FirstSpirit Server des Kunden mit Tomcat für die Vorschau: gar nichts.  Die Spring Initiallisierung, wo die Komponenten geladen und @Autowired werden fehlt total und die JSPs fallen entsprechend auf der Nase.

2) auf meinem FirstSpirit in der selben Version aber mit Jetty

   a) SiteArchitect : alles bestens

    b) ContentCreator altes Design  Fehlermeldung beim  Aktualisieren der Webanwendung : org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mvcValidator' available

   c) ContentCreator neues Design : beim Aktualisieren sieht alles gut aus, meine Beans werden erwähnt aber im Browser kommt "An error occured" und in der fs-wrapper.log steht

INFO   | jvm 1    | 2020/06/03 13:17:28 | 2020-06-03 13:17:28.723 ERROR 14128 --- [qtp286614765-58] o.s.b.w.servlet.support.ErrorPageFilter  : Cannot forward to error page for request [/s=YwPI/de.espirit.firstspirit.webedit.Main/8A090B1FA61F712FC7866C74B2422379.cache.js] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false

INFO   | jvm 1    | 2020/06/03 13:17:28 |

INFO   | jvm 1    | 2020/06/03 13:17:28 | org.eclipse.jetty.io.EofException: null

INFO   | jvm 1    | 2020/06/03 13:17:28 | at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:283) ~[jetty-io-9.4.23.v20191118.jar:9.4.23.v20191118]

...

INFO   | jvm 1    | 2020/06/03 13:17:28 | Caused by: java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert

INFO   | jvm 1    | 2020/06/03 13:17:28 | durch den Hostcomputer abgebrochen

INFO   | jvm 1    | 2020/06/03 13:17:28 | at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na]

Ich denke, das Problem ist, dass der ContentCreator selber Spring Boot benutzt - ich habe extra dieselbe  Version genommen, um Classpath Konflikte aus dem Weg zu gehen.

Hat jemand das Problem schon gehabt? Und gelöst?

Und ja, ich habe auch einen Ticket aufgemacht aber das hängt im Moment, weil mein Modul nicht korrekt aufgebaut ist -  die Versionen der Resourcen sind nicht richtig, siehe mein anderes Posting FSM Modul mit maven bauen wenn parent pom schon belegt? 

Ich glaube aber nicht, dass das relevant für mein Problem ist. Alle jars landen in WEB-INF/lib wo sie sein sollten und es gibt nichts in zwei verschiedene Versionen, ich habe auf der Platte geschaut.

Schöne Grüße,

Ana

0 Kudos
1 Solution

Accepted Solutions
ana_oleski
Returning Observer

Hi,

Folgende Konfiguration  (Tipp von Helpdesk und  E-Spirit Entwickler)  hat das Problem in ContentCreator gelöst:

@ConditionalOnProperty(value = DemoApplication.PROPERTY_ENABLED)

@SpringBootApplication
@Configuration
public class DemoApplication {

   static final String PROPERTY_ENABLED = "com.nord.demo.enabled";

   public static void main(final String[] args)

  { SpringApplication.run(DemoApplication.class, args); }

}

@Configuration
@ComponentScan(value = "com.nord.demo")

public class DemoConfiguration {

}

public class ServletInitializer extends SpringBootServletInitializer

{

   private boolean _applicationEnabled;

   @Override
   public void onStartup(final ServletContext servletContext) throws ServletException

  {

   _applicationEnabled = !(servletContext.getContextPath().startsWith("/fs5webedit"));

   super.onStartup(servletContext);

  }

   protected SpringApplicationBuilder configure(final SpringApplicationBuilder application)

  {

   if (_applicationEnabled)

  {

   final Map<String, Object> properties = new HashMap<>();

  properties.put(DemoApplication.PROPERTY_ENABLED, true);

  application.properties(properties);

  }

  application.sources(DemoConfiguration.class, DemoApplication.class);

   return application;

  }

}

Mit dem Tomcat und SiteArchitect kämpfe ich immer noch - da werden die Spring Beans komplett ignoriert -  aber das ist eine andere Baustelle.

Wer es braucht: ich habe ein Demo-Projekt - ich würde als zip posten aber ich glaube, Anhänge gehen nicht  im Forum.

Mit vielem Dank an Walter und das E-Spirit Team 🙂

Ana

View solution in original post

0 Kudos
1 Reply
ana_oleski
Returning Observer

Hi,

Folgende Konfiguration  (Tipp von Helpdesk und  E-Spirit Entwickler)  hat das Problem in ContentCreator gelöst:

@ConditionalOnProperty(value = DemoApplication.PROPERTY_ENABLED)

@SpringBootApplication
@Configuration
public class DemoApplication {

   static final String PROPERTY_ENABLED = "com.nord.demo.enabled";

   public static void main(final String[] args)

  { SpringApplication.run(DemoApplication.class, args); }

}

@Configuration
@ComponentScan(value = "com.nord.demo")

public class DemoConfiguration {

}

public class ServletInitializer extends SpringBootServletInitializer

{

   private boolean _applicationEnabled;

   @Override
   public void onStartup(final ServletContext servletContext) throws ServletException

  {

   _applicationEnabled = !(servletContext.getContextPath().startsWith("/fs5webedit"));

   super.onStartup(servletContext);

  }

   protected SpringApplicationBuilder configure(final SpringApplicationBuilder application)

  {

   if (_applicationEnabled)

  {

   final Map<String, Object> properties = new HashMap<>();

  properties.put(DemoApplication.PROPERTY_ENABLED, true);

  application.properties(properties);

  }

  application.sources(DemoConfiguration.class, DemoApplication.class);

   return application;

  }

}

Mit dem Tomcat und SiteArchitect kämpfe ich immer noch - da werden die Spring Beans komplett ignoriert -  aber das ist eine andere Baustelle.

Wer es braucht: ich habe ein Demo-Projekt - ich würde als zip posten aber ich glaube, Anhänge gehen nicht  im Forum.

Mit vielem Dank an Walter und das E-Spirit Team 🙂

Ana

0 Kudos