2017-09-15 11 views
1

を把握することはできません、私は、NetBeans IDEでのSpringフレームワークとMavenを使用してアプリケーションを開発しています。このエラーが発生し、どのようにそれを修正する理由を私は理解することはできませんは現在、なぜorg.springframework.beans.factory.BeanCreationException

java.lang.IllegalStateException: Failed to load ApplicationContext 
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) 
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83) 
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117) 
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) 
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:217) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:276) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:278) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:236) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180) 
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) 
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) 
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) 
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) 
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) 
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) 
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [testingContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Must start with Java agent to use InstrumentationLoadTimeWeaver. See Spring documentation. 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) 
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1045) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:824) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:125) 
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60) 
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:109) 
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:261) 
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98) 
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116) 
... 31 more 
Caused by: java.lang.IllegalStateException: Must start with Java agent to use InstrumentationLoadTimeWeaver. See Spring documentation. 
at org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.addTransformer(InstrumentationLoadTimeWeaver.java:88) 
at org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.addTransformer(SpringPersistenceUnitInfo.java:82) 
at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:348) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
... 46 more 

:私はテストを有効にすることでコンパイルすると は、私は、次のエラーメッセージが表示されます。私のプログラムで

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

<bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="classpath:jdbc.properties" /> 

<bean id="DataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
     p:driverClassName="${jdbc.driverClassName}" 
     p:url="${jdbc.url}" 
     p:username="${jdbc.username}" 
     p:password="${jdbc.password}" 
     /> 

<bean id="loadTimeWeaver" class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> 

<bean id="jpaVendorAdapter" 
    class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter" 
    p:showSql="true" 
    p:databasePlatform="org.eclipse.persistence.platform.database.MySQLPlatform" /> 

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
    p:dataSource-ref="DataSource" 
    p:jpaVendorAdapter-ref="jpaVendorAdapter" 
    p:persistenceXmlLocation="test-persistence.xml" 
/> 

<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) --> 
<bean id="transactionManager" 
    class="org.springframework.orm.jpa.JpaTransactionManager" 
    p:dataSource-ref="DataSource" 
    p:entityManagerFactory-ref="entityManagerFactory"/> 

<!-- checks for annotated configured beans --> 
<context:annotation-config/> 

<!-- Scan for Repository/Service annotations --> 
<context:component-scan base-package="com.insure.riskmanage.dao" /> 

<!-- enable the configuration of transactional behavior based on annotations --> 
<tx:annotation-driven /> 

に従うよう

マイtestingContext.xmlがあり、私はEntityManagerのは、すでに定義されています:

package com.insure.riskmanage.dao; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 
import org.springframework.transaction.annotation.Propagation; 
import org.springframework.transaction.annotation.Transactional; 

public class GenericFile<T, ID> { 
final protected Logger logger = LoggerFactory.getLogger(this.getClass()); 

@PersistenceContext(unitName = "insurePU") 
protected EntityManager em; 

final private Class<T> type; 

public GenericFile(Class<T> type1) { 
    this.type = type1; 
} 

@Transactional(readOnly = true, propagation = Propagation.REQUIRED) 
public void create(T obj) { 
    em.persist(obj); 
} 

@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) 
public T read(ID id) { 
    return (T) em.find(type, id); 
} 

@Transactional(readOnly = true, propagation = Propagation.REQUIRED) 
public T update(T obj) { 
    obj = em.merge(obj); 
    return obj; 
} 

@Transactional(readOnly = true, propagation = Propagation.REQUIRED) 
public void delete(T obj) { 
    // associate object with persistence context 
    obj = em.merge(obj); 
    em.remove(obj);    
} 
} 

私は他に何を調べる必要がありますか?誰もが考えている?

+1

エラーは述べています:* java.lang.IllegalStateException:InstrumentationLoadTimeWeaverを使用するJavaエージェントを開始する必要があります。 Springのドキュメント*を参照してください。したがって、ドキュメント(https://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/)を開きます。その後、Ctrl + Fキーを押してドキュメントを検索し、 "InstrumentationLoadTimeWeaver"を検索してください。そのInstrumentationLoadTimeWeaverでJavaを起動する方法について説明します。 –

答えて

2

ネストされた例外の一つは述べて:

java.lang.IllegalStateExceptionを:InstrumentationLoadTimeWeaverを使用するJavaエージェントを開始する必要があります。 Springのドキュメントを参照してください。

Javadocから判断すると、InstrumentationLoadTimeWeaverの場合、Springに付属の特別なエージェントでJVMを起動する必要があります。

-javaagent:path/to/org.springframework.instrument.jar 
+0

私はそれをどうやって行うのか分かりません。私はNetBeans IDE 8.2を使用していて、JVMを一切触れていませんでした。 –

0
<bean id="loadTimeWeaver" class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> 

ここで問題です。このBeanは、通常、通常の@Autowiringシナリオで必要とされていない、

+0

情報ありがとうございます。私はloadTimeWeaverを削除しようとしましたが、私はメッセージが表示されました: WARNING:コンテキストの初期化中に発生した例外 - リフレッシュの試行に org.springframework.beans.factory.BeanCreationExceptionキャンセル:名「のEntityManagerFactory」クラスパスリソースに定義されている[testingContextを持つBeanを作成中にエラーが発生しました。 xml]:initメソッドの呼び出しに失敗しました。ネストされた例外はjava.lang.IllegalStateExceptionです。LoadTimeWeaverを指定しないでクラス・トランスフォーマーを適用することはできません。 –

0

はあなたに私の質問に応答したすべての人に感謝したら、それを削除してみてください。 最後に私はこのエラーが出た理由を知りました。 これは私のpom.xmlファイルにあります。 additonal>という文字を持つタグが1つあります。代わりの は、次のように>追加の文字があります:

<artifactId>>maven-surefire-plugin</artifactId> 

どういうわけか、それが検出されていないが、ちょうどpom.xmlファイルの残りの部分を無視し、私は思います。

関連する問題