4

Ich habe ein Maven-Projekt "Enterprise-Anwendung" mit zwei Modulen. Das erste Modul ist eine Maven-Standard-Java-Anwendung, die die Domäne, Dao und Business-Schicht enthält. Das zweite Modul ist ein "Java Web Application" Maven. Hier ist die Konfiguration so weit aufgebaut: - die Standard-Java-Anwendungsmodul: HauptklasseBereitstellung von Spring Boot-Modulen in Enterprise-Anwendung: TransactionManagementConfigurationSelector ist nicht zu Schnittstelle zuweisbar ImportSelector

@SpringBootApplication 
public class MobilepaymentDao { 
    public static void main(String[] args) { 
    SpringApplication.run(MobilepaymentDao.class, args); 
    } 

} 

pom.xml

<parent> 
     <groupId>com.nhit.dev</groupId> 
     <artifactId>mobilepayment</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <groupId>com.nhit.dev</groupId> 
    <artifactId>mobilepayment-dao</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>mobilepayment-dao</name> 
    <description>Demo project for Spring Boot</description> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <!-- Spring --> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>dom4j</groupId> 
        <artifactId>dom4j</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
         <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <!-- JBehave --> 
     <dependency> 
      <groupId>org.jbehave</groupId> 
      <artifactId>jbehave-core</artifactId> 
      <version>4.0.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jbehave</groupId> 
      <artifactId>jbehave-spring</artifactId> 
      <version>4.0.5</version> 
     </dependency> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.springframework.cloud</groupId> 
       <artifactId>spring-cloud-dependencies</artifactId> 
       <version>Brixton.SR5</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <configuration> 
       <executable>true</executable> 
       <classifier>exec</classifier> 
      </configuration> 
     </plugin> 
     <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.6</version> 
       <executions> 
        <execution> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${endorsed.dir}</outputDirectory> 
          <silent>true</silent> 
          <artifactItems> 
           <artifactItem> 
            <groupId>javax</groupId> 
            <artifactId>javaee-endorsed-api</artifactId> 
            <version>7.0</version> 
            <type>jar</type> 
           </artifactItem> 
          </artifactItems> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
  • die Java-Web-Anwendungsmodul: Hauptklasse

    @SpringBootApplication (ausschließen = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) Öffentliche Klasse MobilepaymentApplication erweitert SpringBootServletInitializer { public static void main (Zeichenfolge [] args) { SpringApplication.run (MobilepaymentApplication.class, args); System.out.println ("dans le main");

     } 
         @Override 
         protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
          return application.sources(applicationClass); 
         } 
    
         private static Class<MobilepaymentApplication> applicationClass = MobilepaymentApplication.class; 
        } 
    

pom.xml

<parent> 
     <groupId>com.nhit.dev</groupId> 
     <artifactId>mobilepayment</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <groupId>com.nhit.dev</groupId> 
    <artifactId>mobilepayment-web</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>mobilepayment-web</name> 

    <properties> 
     <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.tomcat.embed</groupId> 
        <artifactId>tomcat-embed-core</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.tomcat.embed</groupId> 
        <artifactId>tomcat-embed-websocket</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-tomcat</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxws</artifactId> 
      <version>3.1.7</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.cxf</groupId> 
        <artifactId>cxf-core</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.cxf</groupId> 
        <artifactId>cxf-rt-bindings-soap</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.cxf</groupId> 
        <artifactId>cxf-rt-bindings-xml</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-transports-http</artifactId> 
      <version>3.1.7</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.cxf</groupId> 
        <artifactId>cxf-core</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>${project.groupId}</groupId> 
      <artifactId>mobilepayment-dao</artifactId> 
      <version>${project.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-bindings-xml</artifactId> 
      <version>3.1.7</version> 
      <!--   <scope>provided</scope>--> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-bindings-soap</artifactId> 
      <version>3.1.7</version> 
      <!--   <scope>provided</scope>--> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>7.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
</plugins> 
    </build> 

</project> 

- das Unternehmen Anwendungsmodul (ear) pom.xml

<parent> 
     <artifactId>mobilepayment</artifactId> 
     <groupId>com.nhit.dev</groupId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.nhit.dev</groupId> 
    <artifactId>mobilepayment-ear</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>ear</packaging> 
    <name>mobilepayment-ear</name> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
     <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-ear-plugin</artifactId> 
       <version>2.8</version> 
       <configuration> 
        <version>6</version> 
        <defaultLibBundleDir>lib</defaultLibBundleDir> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.nhit.dev</groupId> 
      <artifactId>mobilepayment-dao</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>jar</type> 
     </dependency> 
     <dependency> 
      <groupId>com.nhit.dev</groupId> 
      <artifactId>mobilepayment-web</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>war</type> 
     </dependency> 
    </dependencies> 
</project> 

- das Multi-Module Maven Projekt: pom.xml

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

    <groupId>com.nhit.dev</groupId> 
    <artifactId>mobilepayment</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>mobilepayment</name>  

    <modules> 
     <module>mobilepayment-dao</module> 
     <module>mobilepayment-web</module> 
     <module>mobilepayment-ear</module> 
    </modules> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 

    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>sonar-maven-plugin</artifactId> 
       <version>2.6</version> 
      </plugin> 
      <plugin> 
       <groupId>org.wildfly.plugins</groupId> 
       <artifactId>wildfly-maven-plugin</artifactId> 
       <version>1.0.1.Final</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Als ich das Enterprise Application Projekt von Netbeans bereitstellen, indem Sie auf Ausführen klicken, erhalte ich diese Ausnahme:

Deploying C:\wildfly-10.0.0.Final\standalone\deployments\mobilepayment-ear-0.0.1-SNAPSHOT.ear 
{"WFLYCTL0080: Failed services" => {"jboss.undertow.deployment.default-server.default-host./mobilepayment-web" => "org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./mobilepayment-web: java.lang.RuntimeException: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$TransactionManagementConfiguration]; nested exception is java.lang.IllegalArgumentException: class org.springframework.transaction.annotation.TransactionManagementConfigurationSelector is not assignable to interface org.springframework.context.annotation.ImportSelector 
    Caused by: java.lang.RuntimeException: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$TransactionManagementConfiguration]; nested exception is java.lang.IllegalArgumentException: class org.springframework.transaction.annotation.TransactionManagementConfigurationSelector is not assignable to interface org.springframework.context.annotation.ImportSelector 
    Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$TransactionManagementConfiguration]; nested exception is java.lang.IllegalArgumentException: class org.springframework.transaction.annotation.TransactionManagementConfigurationSelector is not assignable to interface org.springframework.context.annotation.ImportSelector 
    Caused by: java.lang.IllegalArgumentException: class org.springframework.transaction.annotation.TransactionManagementConfigurationSelector is not assignable to interface org.springframework.context.annotation.ImportSelector"}} 
+0

ich den gleichen Fehler in meiner Anwendung im Zusammenhang keine Sache verwenden. Hast du eine Lösung gefunden? Wenn ja, bitte posten als Antwort. – sola

Antwort

0

Es ist ziemlich alt, aber ich habe gerade das gleiche Problem und ich die Lösung gefunden durch Zugabe von

@EnableAutoConfiguration(exclude = {TransactionAutoConfiguration.class} 

Aber ich angewandt, weil ich auf Transaktionen in meiner Anwendung

Verwandte Themen