2017-10-27 5 views
0

Ich entwickle eine Demo-Anwendung für den Verbrauch eines Soap Web Service und ich verwende Achse 2 als Client. Ich entschied mich Spring Spring zu verwenden und meinen Code darin einzubinden. Zuerst war der einfache Spring Boot völlig in Ordnung und ich konnte eine Demo Jsp Seite und ein paar Rest Webservices erstellen. Nachdem ich Stub-Code-JAR-Dateien und auch die Abhängigkeiten von Axis und Rampart in pom.xml hinzugefügt habe, wird beim Start immer ein Fehler angezeigt.Spring Boot-Start fehlgeschlagen nach Hinzufügen von Axis 2-Client-Abhängigkeiten

ist hier ein Snippet-Code für pom.xml das Problem nur durch das Hinzufügen

<dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-metadata</artifactId> 
      <version>1.7.1</version> 
     </dependency> 

in eine einfache Feder Boot pom.xml Datei, die eingebettete tomcat verwendet und Jaspis leicht replizierbar ist.

pom.xml

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.7.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 
... 
<properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
     <axis.version>1.7.1</axis.version> 
     <rampart.version>1.7.1</rampart.version> 
    </properties> 
... 

<dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 


     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
      <optional>true</optional> 
     </dependency> 


     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
<dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>provided</scope> 

     </dependency> 

... 
<dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-metadata</artifactId> 
      <version>${axis.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-io</groupId> 
        <artifactId>commons-io</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
</dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

Ich erhalte die folgende Fehlermeldung in der Konsole für mvn feder boot: laufen

2017-10-27 15:20:29.433 INFO 26486 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.15 
2017-10-27 15:20:29.513 ERROR 26486 --- [cat-startStop-1] 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) [na:1.8.0_131] 
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) [na:1.8.0_131] 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939) ~[tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] 
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 
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) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    ... 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) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5117) ~[tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    ... 6 common frames omitted 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.authenticator.NonLoginAuthenticator[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182) ~[tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    ... 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:1141) ~[tomcat-embed-core-8.5.15.jar:8.5.15] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.15.jar:8.5.15] 
    ... 10 common frames omitted 

Antwort

4

Das Problem war eine transitive Abhängigkeit "javax.servlet:servlet-api", die mit "org.apache.axis2:axis2-metadata" kommt .

ich festgelegt, dass durch sie von den axis2 und Walles Abhängigkeiten ohne:

<dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-metadata</artifactId> 
     <version>${axis.version}</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
      </exclusion> 
     </exclusions>  
    </dependency>