Search the FirstSpirit Knowledge Base
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
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
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