@Configurable
ドメインオブジェクト(スプリングコンテナによって管理されていない)をセットアップしようとしています。
私は-javaagent:path/to/spring-instrument.jar
をJVM引数として追加しましたが、この-javaagentを適所に置かなくてはならないかどうかは、私には100%明確ではありません。特にこの行、私はdocumentationを誤って解釈することができるのTomcat 8上でこれを実行しているが、私がこれを達成する別のメカニズムを使用することができる場合がそうです:Tomcat 8、Springブート、@ Configurable LoadTimeWeaving with -javaagent?
が
Tomcat 8.0
にもうTomcatInstrumentableClassLoader
を定義しないでください。また、高い。代わりに、TomcatLoadTimeWeaver
戦略によって、Springが自動的にTomcatの新しいネイティブInstrumentableClassLoader
機能を使用するようにします。以下
コードサンプル:
3210@Configurable
public class MyDomainObject {
@Autowired
private MyService myService;
public MyService getMyService(){
return myService;
}
}
public class MyService {
private static final Logger log = LoggerFactory.getLogger(MyService.class);
public void test(){
log.info("test");
}
}
だから、-javaagentを指定せずに織り込まこれら@Configrableのオブジェクトを取得する方法はありますか?スタンドアロンのTomcat 8サーバーにWARとして展開したり、埋め込みTomcat 8サーバーを「ファット」ジャーとして起動するときにこれを達成できるかどうかを学ぶことに興味があります。
スタンドアローンに展開するTomcat 8サーバーはエラーをスローしませんが、上記のgetMyService()
メソッドはnullを返します。脂肪jarファイルが起動時に次のエラーがスローされますよう起動:
Caused by: java.lang.IllegalStateException: ClassLoader [sun.misc.Launcher$AppClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar
私は、本当の問題は、私のTomcat 8でSpecify a custom LoadTimeWeaver
行う方法ですと仮定しますか?ドキュメントが述べているように、自動的に何も起こっていないようですが、やはり私はそれが正確に何を意味するのかを誤解しているかもしれません。
私は今、同じ問題を抱えていますが、解決しましたか? – alexanoid
@alexanoid残念ながら私はしていません – mjj1409