adorsys / xs2a

Open Source NextGenPSD2 XS2A Implementation from adorsys.
https://adorsys.com/en/products/
GNU Affero General Public License v3.0
130 stars 62 forks source link

Servlet API dependency mismatch between Spring and xs2a-server-api #27

Closed keilw closed 5 years ago

keilw commented 5 years ago

While all the other services run locally without problem (as per GETTING_STARTED, running spi-mock fails:

  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::       (v1.5.18.RELEASE)

[INFO ][16:28:28.251] - de.adorsys.aspsp.xs2a.spi.ASPSPXs2aApplication: Starting ASPSPXs2aApplication on M1D-WNB-00013 with PID 8880 (C:\Dev\git\xs2a\spi-mock\target\classes started by cs98547 in C:\Dev\git\xs2a\spi-mock)
[DEBUG][16:28:28.251] - de.adorsys.aspsp.xs2a.spi.ASPSPXs2aApplication: Running with Spring Boot v1.5.18.RELEASE, Spring v4.3.21.RELEASE
[INFO ][16:28:28.251] - de.adorsys.aspsp.xs2a.spi.ASPSPXs2aApplication: The following profiles are active: mockspi
[DEBUG][16:28:29.454] - org.jboss.logging: Logging Provider: org.jboss.logging.Slf4jLoggerProvider found via system property
[INFO ][16:28:33.423] - org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-8080"]
[INFO ][16:28:33.436] - org.apache.catalina.core.StandardService: Starting service [Tomcat]
[INFO ][16:28:33.437] - org.apache.catalina.core.StandardEngine: Starting Servlet Engine: Apache Tomcat/8.5.35
[ERROR][16:28:33.687] - org.apache.catalina.core.ContainerBase: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       ... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5166)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve[]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 8 common frames omitted
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
       at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1181)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 10 common frames omitted
[ERROR][16:28:33.689] - org.apache.catalina.core.ContainerBase: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.startup.Tomcat.start(Tomcat.java:366)
       at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:114)
       at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:87)
       at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:554)
       at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:179)
       at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:166)
       at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:136)
       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
       at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
       at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
       at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
       at de.adorsys.aspsp.xs2a.spi.ASPSPXs2aApplication.main(ASPSPXs2aApplication.java:30)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:528)
       at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       ... 1 common frames omitted
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 common frames omitted
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       ... 8 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       ... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5166)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve[]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 8 common frames omitted
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
       at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1181)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 10 common frames omitted
[INFO ][16:28:33.694] - org.apache.coyote.http11.Http11NioProtocol: Pausing ProtocolHandler ["http-nio-8080"]
[INFO ][16:28:33.695] - org.apache.catalina.core.StandardService: Stopping service [Tomcat]
[WARN ][16:28:33.701] - org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
[ERROR][16:28:33.719] - org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter: 

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call the method javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; but it does not exist. Its class, javax.servlet.ServletContext, is available from the following locations:

    jar:file:/C:/Dev/repository/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar!/javax/servlet/ServletContext.class
    jar:file:/C:/Dev/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.35/tomcat-embed-core-8.5.35.jar!/javax/servlet/ServletContext.class

It was loaded from the following location:

    file:/C:/Dev/repository/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar

Action:

Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext

javax.servlet-api-3.0.1 is defined as dependency through xs2a-server-api, but apperently a recent upgrade of a Spring library like Embedded Tomcat uses a higher version of Servlet API (3.1.0) so the two versions clash. Other services that don't use xs2a-server-api are not affected.