Java 将aspectj用作单独模块时无法运行spring启动应用程序
我有一个应用程序,它使用aspectj进行日志记录。最初aspectj模块是在我的原始应用程序中使用的。后来,我将aspectj模块作为一个单独的项目移动,并在主项目中添加了该模块依赖项。现在,当我运行我的主应用程序时,我得到一个运行时异常,如下所示-Java 将aspectj用作单独模块时无法运行spring启动应用程序,java,spring,maven,aspectj,aspectj-maven-plugin,Java,Spring,Maven,Aspectj,Aspectj Maven Plugin,我有一个应用程序,它使用aspectj进行日志记录。最初aspectj模块是在我的原始应用程序中使用的。后来,我将aspectj模块作为一个单独的项目移动,并在主项目中添加了该模块依赖项。现在,当我运行我的主应用程序时,我得到一个运行时异常,如下所示- 2017年1月9日星期一上午10:40:50[主要]WARN o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext-上下文初始化期间遇到异常-取消刷新尝试:org.springframew
2017年1月9日星期一上午10:40:50[主要]WARN o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext-上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.UnsatifiedPendencyException:创建名为“xxxController”的bean时出错:通过字段“xxxxManager”表示的未满足的依赖关系:使用名称“xxxManagerImpl”:通过字段“xxxx”表示的未满足的依赖关系:创建名为“xxxInspectorImpl”的bean时出错:自动连线依赖关系的注入失败;嵌套异常为java.lang.VerifyError:在分支目标51处应为stackmap帧
例外情况详情:
地点:
com/afl/axidot/service/impl/xxxx.getxxx(Ljava/util/List;)D@15:ifnull
原因:
此位置应为stackmap帧。
字节码:
0x0000000:2b3a 04b2 0275 2a2a 1904 b801 e54e 2ac6
0x0000010:0024 2ab6 00d6 1302 34b6 01f9 9900 17b8
0x0000020:0232 2d2a b600 d613 0234 b601 f1c0 0234
0x0000030:b602 3e2a c600 4c2a b600 d613 0234 b601
0x0000040:f999 003f b802 3206 bd00 033a 1519 1503
0x0000050:2a53 1915 0419 0453 1915 052d 53bb 027c
0x0000060:5919 15b7 027d 1302 27b6 022d 2ab6 00d6
0x0000070:1302 34b6 01f1 c002 34b6 0238 b802 58af
0x0000080:2a19 042d b802 7faf
; 嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“xxxInspectorImpl”的bean时出错:自动连线依赖项的注入失败;嵌套异常为java.lang.VerifyError:在分支目标51处应为stackmap帧
例外情况详情:
地点:
com/afl/axidot/service/impl/xxxx.getxxxx(Ljava/util/List;)D@15:ifnull
原因:
此位置应为stackmap帧。
字节码:
0x0000000:2b3a 04b2 0275 2a2a 1904 b801 e54e 2ac6
0x0000010:0024 2ab6 00d6 1302 34b6 01f9 9900 17b8
0x0000020:0232 2d2a b600 d613 0234 b601 f1c0 0234
0x0000030:b602 3e2a c600 4c2a b600 d613 0234 b601
0x0000040:f999 003f b802 3206 bd00 033a 1519 1503
0x0000050:2a53 1915 0419 0453 1915 052d 53bb 027c
0x0000060:5919 15b7 027d 1302 27b6 022d 2ab6 00d6
0x0000070:1302 34b6 01f1 c002 34b6 0238 b802 58af
0x0000080:2a19 042d b802 7faf
2017年1月9日星期一上午10:40:50[主要]信息o.a.catalina.core.StandardService-停止服务Tomcat
2017年1月9日星期一上午10:40:50[main]警告o.s.boot.SpringApplication-错误处理失败(创建名为“delegatingApplicationListener”的bean时出错,该bean在类路径资源[org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]中定义):bean实例化之前的BeanPostProcessor失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.transaction.config.internalTransactionAdvisor”的bean时出错,该名称在类路径资源中定义[org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class]:通过工厂方法实例化Bean失败;嵌套异常为org.springframework.beans.BeanInstantiationException:未能实例化[org.springframework.transaction.interceptor.beanFactoryTransactionAttributeSourceVisor]:工厂方法“transactionAdvisor”引发异常;嵌套异常为java.lang.NullPointerException)
2017年1月9日星期一上午10:40:50[main]错误o.s.boot.SpringApplication-应用程序启动失败
位于org.springframework.beans.factory.annotation.AutoWiredNotationBeanPostProcessor$AutoWiredFeldElement.inject(AutoWiredNotationBeanPostProcessor.java:569)
位于org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
位于org.springframework.beans.factory.annotation.AutoWiredNotationBeanPostProcessor.postProcessPropertyValues(AutoWiredNotationBeanPostProcessor.java:349)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:776)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
位于org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
位于org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
位于org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.aspectj</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>logger</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<aspectj.version>1.8.9</aspectj.version>
<java.source.version>1.8</java.source.version>
<java.target.version>1.8</java.target.version>
<aop.compliance.level>1.8</aop.compliance.level>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<complianceLevel>${aop.compliance.level}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
<?xml version="1.0" encoding="UTF-8"?>
<groupId>com.xxx.axidot</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.source.version>1.8</java.source.version>
<java.target.version>1.8</java.target.version>
<aop.compliance.level>1.8</aop.compliance.level>
<sonar.host.url>http://172.16.2.31:9000/</sonar.host.url>
<aspectj.version>1.8.9</aspectj.version>
<drools.version>6.4.0.Final</drools.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.xxx.aspectj</groupId>
<artifactId>logger</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- AOP -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>com.afl.aspectj</groupId>
<artifactId>logger</artifactId>
</dependency>
</dependencies>
<build>
<finalName>xxx-xxx</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<complianceLevel>${aop.compliance.level}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
<aspectLibraries>
<aspectLibrary>
<groupId>com.xxx.aspectj</groupId>
<artifactId>logger</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
</plugin>
</plugins>
</build>