2016-05-25 3 views
0

wicket-metricsWicket 7.3.0以降の実験版ですが、私はWicket 6.17.0に基づいたプロジェクトに取り組んでいます。 誰もでwicket-metricsモジュールを実行しようとしましたか?私が試した何Wicket 6でaspectJを使ってWicket-metricsを実行することはできますか?

  • は改札gitのレポクローン - https://github.com/apache/wicketをし、私のプロジェクトから依存関係を使用するのpom.xmlを指示し、私のプロジェクトにwicket-metricsモジュールを追加しました。
  • aop.xmlをMETA-INFフォルダに追加し、init()メソッドでJmxReporterを起動してください。

しかし、WicketFilterInitAspectは登録できません(私のaop.xmlファイルに含まれています)。 META-INFフォルダ内の

aop.xmlファイル:

<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> 
<aspectj> 
    <!--<weaver options="-nowarn">--> 
     <!--<include within="org.apache.wicket..*"/>--> 
    <!--</weaver>--> 
    <aspects> 
     <!-- required --> 
     <aspect name="org.apache.wicket.metrics.aspects.WicketFilterInitAspect" /> 
     <!-- optional --> 
     <aspect name="org.apache.wicket.metrics.aspects.model.LoadableDetachableModelLoadAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.requesthandler.IRequestHandlerDetachAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.requesthandler.IRequestHandlerRespondAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.resource.IResourceCreateAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.behavior.BehaviorCreateAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentCreateAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentOnConfigureAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentOnDetachAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentOnInitializeAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentOnRenderAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.component.ComponentSetResponsePageAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.ajax.IPartialPageRequestHandlerAddAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.ajax.IPartialPageRequestHandlerAppendJavaScriptAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.ajax.IPartialPageRequestHandlerPrependJavaScriptAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.resource.ResourceReferenceCreateAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.markup.WicketTagCreateAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.request.WicketFilterRequestCycleUrlAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.request.WicketFilterRequestCycleAspect" /> 
     <aspect name="org.apache.wicket.metrics.aspects.session.SessionCountListenerAspect" /> 
    </aspects> 
</aspectj> 

は、だから私の気持ちは、これは一般的に可能でなければならないことであると誰もがこれまで成功したかのアイデアを持っている場合、私は疑問に思って?私シュトラックトレースの

パート:

[[email protected]] info AspectJ Weaver Version 1.8.2 built on Thursday Aug 14, 2014 at 21:45:02 GMT 
[[email protected]] info register classloader [email protected] 
[[email protected]] info register aspect org.apache.wicket.metrics.aspects.WicketFilterInitAspect 
May 26, 2016 8:23:02 PM org.aspectj.weaver.tools.Jdk14Trace error 
SEVERE: register definition failed 
java.lang.RuntimeException: Cannot register non aspect: org$apache$wicket$metrics$aspects$WicketFilterInitAspect , org.apache.wicket.metrics.aspects.WicketFilterInitAspect 
    at org.aspectj.weaver.bcel.BcelWeaver.addLibraryAspect(BcelWeaver.java:219) 
    at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerAspects(ClassLoaderWeavingAdaptor.java:485) 
    at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerDefinitions(ClassLoaderWeavingAdaptor.java:304) 
    at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:171) 
    at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:339) 
    at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:344) 
    at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:318) 
    at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:113) 
    at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54) 
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188) 
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at javax.management.remote.rmi.NoCallStackClassLoader.findClass(NoCallStackClassLoader.java:126) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at javax.management.remote.rmi.RMIConnector$1.run(RMIConnector.java:2157) 
    at javax.management.remote.rmi.RMIConnector$1.run(RMIConnector.java:2144) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.management.remote.rmi.RMIConnector.<clinit>(RMIConnector.java:2178) 
    at javax.management.remote.rmi.RMIConnectorServer.objectToBind(RMIConnectorServer.java:752) 
    at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:408) 
    at sun.management.jmxremote.ConnectorBootstrap.exportMBeanServer(ConnectorBootstrap.java:768) 
    at sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(ConnectorBootstrap.java:456) 
    at sun.management.Agent.startAgent(Agent.java:257) 
    at sun.management.Agent.startAgent(Agent.java:447) 

私はまた、Springフレームワークに関連するこれらのエラーの一部を取得:

[[email protected]] error can't determine superclass of missing type javax.cache.annotation.CacheResult 
when weaving type org.springframework.cache.jcache.interceptor.AnnotationJCacheOperationSource 
when weaving classes 
when weaving 
[Xlint:cantFindType] 
[[email protected]] error can't determine superclass of missing type javax.cache.annotation.CacheResult 
when weaving type org.springframework.cache.jcache.interceptor.AnnotationJCacheOperationSource 
when weaving classes 
when weaving 
[Xlint:cantFindType] 
[[email protected]] error can't determine whether missing type javax.cache.annotation.CacheResult is an instance of org.apache.wicket.Component 
when weaving type org.springframework.cache.jcache.interceptor.AnnotationJCacheOperationSource 
when weaving classes 
when weaving 
[Xlint:cantFindType] 
[[email protected]] error can't determine superclass of missing type javax.cache.annotation.CacheResult 
when weaving type org.springframework.cache.jcache.interceptor.AnnotationJCacheOperationSource 
when weaving classes 
when weaving 
+0

どうか私たちにエラーを表示してください。 –

+0

@ martin-g、スタックトレースの一部を追加しました。 – lapadets

答えて

1

は、それは、関連見えAspectJ: ClassLoading issue when trying to use external aop.xml file

を参照してください。

申し訳ありませんが、これ以上はお手伝いできません。

+0

ありがとう!スプリングコンテキストが初期化される前にWicketMetricsフィルタ名を初期化すると、整合性の問題が解決されました。私はまた、外部のaop.xmlファイルと一緒に働くために、すべてのwicket-aspectsをspring beanとして宣言しました。しかし残念ながら、私は現在、SpringのAOPの制限のためにメソッドの実行ポイントを測定することしかできません。あなたはこれに関する考え/思考を持っていますか? – lapadets

+0

@klopfdreh Ping! –

+0

こんにちは、非常に遅い応答にごめんなさい。この場合、AspectJの注釈を処理するためにSpringに指示する方法を見つけなければならないと思います。あなたは @lapadetsを試しましたか? – klopfdreh

関連する問題