Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用maven为Spring指定loadTimeWeaver_Java_Spring_Maven_Intellij Idea - Fatal编程技术网

Java 如何使用maven为Spring指定loadTimeWeaver

Java 如何使用maven为Spring指定loadTimeWeaver,java,spring,maven,intellij-idea,Java,Spring,Maven,Intellij Idea,我有一个奇怪的错误。我在intelliJIDEA IDE中运行了一个基本的spring boot web服务器(在jetty上) 当我运行maven“package”命令,并尝试从命令行运行web服务器时,它会给我一个loadTimeWeaver错误。我不理解这两种运行环境之间的区别,在我看来,它确实应该工作 在IDEA中,我在运行配置中指定以下内容: 主要类别:包装、起动机 VM选项:-javaagent:C:/Users/newb/EXT_LIBS/spring-instrument-4.0

我有一个奇怪的错误。我在intelliJIDEA IDE中运行了一个基本的spring boot web服务器(在jetty上)

当我运行maven“package”命令,并尝试从命令行运行web服务器时,它会给我一个loadTimeWeaver错误。我不理解这两种运行环境之间的区别,在我看来,它确实应该工作

在IDEA中,我在运行配置中指定以下内容:
主要类别:包装、起动机
VM选项:-javaagent:C:/Users/newb/EXT_LIBS/spring-instrument-4.0.3.RELEASE.jar-noverify

在命令行中,我尝试执行以下操作:
java-javaagent:C:/Users/newb/EXT_LIBS/spring-instrument-4.0.3.RELEASE.jar-noverify-jar target\MySpringServer.war

但我得到了以下错误:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Cannot apply class transformer without LoadTimeWeaver specified
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:973)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:750)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:311)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:898)
        at au.net.iinet.operational.Starter.main(Starter.java:48)
        ... 6 more
Caused by: java.lang.IllegalStateException: Cannot apply class transformer without LoadTimeWeaver specified
        at org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.addTransformer(SpringPersistenceUnitInfo.java:80)
        at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:348)
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336)
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
        ... 21 more
解决此loadTimeWeaver问题的最佳方法是什么?有没有理由认为它可以在我的IDE中工作,但不能在IDE之外工作?我已经尝试强制设置loadTimeWeaver,但这并不是一件小事,而且它在我的IDE中工作这一事实意味着我只需要检查一些非常小的事情

提前谢谢

编辑:
我找到了答案!以下问题对我很有帮助:

基本上,我还需要在命令行上指定-Xbootclasspath/a:C:/Users/newb/EXT_LIBS/spring-instrument-4.0.3.RELEASE.jar。现在它没有给我那些加载时间编织错误!呜

这应该可以解决您的问题

@Bean
public InstrumentationLoadTimeWeaver loadTimeWeaver()  throws Throwable {
    InstrumentationLoadTimeWeaver loadTimeWeaver = new InstrumentationLoadTimeWeaver();
    return loadTimeWeaver;
}
在配置中也可以这样做

发现了一个新的解决方案,该方案只解决了动态设置spring InstrumentationLoadTimeWeaver以支持方面,而无需使用显式java代理启动JVM

<dependency>
    <groupId>de.invesdwin</groupId>
    <artifactId>invesdwin-instrument</artifactId>
    <version>1.0.2</version>
</dependency>

这会解决你的问题

@Bean
public InstrumentationLoadTimeWeaver loadTimeWeaver()  throws Throwable {
    InstrumentationLoadTimeWeaver loadTimeWeaver = new InstrumentationLoadTimeWeaver();
    return loadTimeWeaver;
}
在配置中也可以这样做

发现了一个新的解决方案,该方案只解决了动态设置spring InstrumentationLoadTimeWeaver以支持方面,而无需使用显式java代理启动JVM

<dependency>
    <groupId>de.invesdwin</groupId>
    <artifactId>invesdwin-instrument</artifactId>
    <version>1.0.2</version>
</dependency>

是 啊它非常适合我,并且使LTW配置更容易避免指定jvm--javaagent arg!,它非常适合我,使LTW配置更容易避免指定jvm--javaagent arg。我很好奇,你需要加载时编织做什么?我很好奇,你需要加载时编织做什么?