2016-05-24 11 views
0

私はSpringBootApplication SOAPWebserviceを作成していますが、そのアプリケーションを起動する際に問題が発生しています。次の例外を取り除いている。 誰かが私を助けることができますか?[org.apache.cxf.jaxws.EndpointImpl]のインスタンス化に失敗しました

のStackTrace

java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'prefService' defined in class path resource [com/canaldigital/tsi/config/WebServiceConfig.class]: Bean instantiation via factory method failed; nested 
exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.cxf.jaxws.EndpointImpl]: Factory method 'prefService' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.log4j.ConsoleApp 
ender.<init>(Lorg/apache/log4j/Layout;Ljava/lang/String;)V 
     at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
     at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) 
     at com.canaldigital.tsi.config.App.main(App.java:15) 
     ... 6 more 
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.cxf.jaxws.EndpointImpl]: Factory method 'prefService' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.log4j.ConsoleAppend 
er.<init>(Lorg/apache/log4j/Layout;Ljava/lang/String;)V 
     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) 
     at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) 
     ... 23 more 
Caused by: java.lang.NoSuchMethodError: org.apache.log4j.ConsoleAppender.<init>(Lorg/apache/log4j/Layout;Ljava/lang/String;)V 
     at com.canaldigital.tsi.commons.logger.CDLoggerFactory.initLog4J(CDLoggerFactory.java:26) 
     at com.canaldigital.tsi.commons.logger.CDLoggerFactory.<clinit>(CDLoggerFactory.java:14) 
     at com.canaldigital.tsi.creditcard.ws.CreditCard.<clinit>(CreditCard.java:68) 
     at com.canaldigital.tsi.config.WebServiceConfig.prefService(WebServiceConfig.java:31) 
     at com.canaldigital.tsi.config.WebServiceConfig$$EnhancerBySpringCGLIB$$d8155b79.CGLIB$prefService$1(<generated>) 
     at com.canaldigital.tsi.config.WebServiceConfig$$EnhancerBySpringCGLIB$$d8155b79$$FastClassBySpringCGLIB$$6e769f59.invoke(<generated>) 
     at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
     at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356) 
     at com.canaldigital.tsi.config.WebServiceConfig$$EnhancerBySpringCGLIB$$d8155b79.prefService(<generated>) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) 
     ... 24 more 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 

のpom.xml

 <?xml version="1.0" encoding="UTF-8"?> 
    <project 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
     xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <modelVersion>4.0.0</modelVersion> 

     <groupId>com.canaldigital.tsi</groupId> 
     <artifactId>abc-ws</artifactId> 
     <packaging>war</packaging> 
     <name>abc-ws</name> 
     <url>http://maven.apache.org</url> 

     <parent> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-parent</artifactId> 
      <version>1.3.5.RELEASE</version> 
      <relativePath/> 
      <!-- lookup parent from repository --> 
     </parent> 

     <dependencies> 

      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-web</artifactId> 
      </dependency> 


      <dependency> 
       <groupId>junit</groupId> 
       <artifactId>junit</artifactId> 
       <version>4.12</version> 
       <scope>test</scope> 
      </dependency> 

      <dependency> 
       <groupId>com.oracle</groupId> 
       <artifactId>ojdbc6</artifactId> 
       <version>11.2.0.2.0</version> 
       <scope>test</scope> 
      </dependency> 

      <dependency> 
       <groupId>com.canaldigital.tsi</groupId> 
       <artifactId>tsi-creditcard-core</artifactId> 
       <version>1.0-SNAPSHOT</version> 
      </dependency> 

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


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

      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-frontend-jaxws</artifactId> 
       <version>3.1.5</version> 
      </dependency> 


      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-transports-http</artifactId> 
       <version>3.1.5</version> 
      </dependency> 


      <dependency> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-core</artifactId> 
       <version>3.1.5</version> 
      </dependency> 

     </dependencies> 
     <properties> 
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     </properties> 
     <build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 

    </plugins> 
</build> 

</project> 

WebServiceConfig.java

package com.canaldigital.tsi.config; 

import org.apache.cxf.Bus; 
import org.apache.cxf.bus.spring.SpringBus; 
import org.apache.cxf.interceptor.LoggingInInterceptor; 
import org.apache.cxf.interceptor.LoggingOutInterceptor; 
import org.apache.cxf.jaxws.EndpointImpl; 
import org.apache.cxf.transport.servlet.CXFServlet; 
import org.springframework.boot.context.embedded.ServletRegistrationBean; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 

import com.canaldigital.tsi.creditcard.ws.CreditCard; 

@Configuration 
public class WebServiceConfig { 
    @Bean 
    public ServletRegistrationBean cxfServlet() { 
     return new ServletRegistrationBean(new CXFServlet(), "/services/*"); 
    } 

    @Bean 
    public Bus cxf() { 
     return new SpringBus(); 
    } 

    @Bean 
    public EndpointImpl prefService(ApplicationContext applicationContext) { 
     Bus bus = (Bus) applicationContext.getBean(Bus.DEFAULT_BUS_ID); 
     Object implementor = new CreditCard(); 
     EndpointImpl endpoint = new EndpointImpl(bus, implementor); 
     endpoint.publish("/cc"); 
     endpoint.getServer().getEndpoint().getInInterceptors() 
       .add(new LoggingInInterceptor()); 
     endpoint.getServer().getEndpoint().getOutInterceptors() 
       .add(new LoggingOutInterceptor()); 
     return endpoint; 
    } 
} 

答えて

0

あなたが一緒にうまく再生されない参照のlog4jの互換性のない2つのバージョンを持っているように見えます。

<dependency> 
     <groupId>group-of-responsible-jar</groupId> 
     <artifactId>artifactId-of-responsible-jar</artifactId> 
     <version>...</version> 
     <exclusions> 
      <exclusion> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      </exclusion> 
     </exclusions> 
</dependecy> 
:その後のmavenの除外機能を使用して、間違ったものを除外

mvn dependency:tree -Dverbose 

:この異なるバージョンがどこから来識別するためのMavenの依存関係ツリー機能を使用します

関連する問題