1

しばらくこのエラー メッセージに対処してきましたが、誰も助けてくれませんでした...

次の Linux コマンドでスタンドアロン TPTP プローブキット エージェントを使用して、Java アプリケーションをプローブしようとしています。

java '-agentlib:JPIBootLoader=JPIAgent:server=standalone;ProbekitAgent:ext-pk-BCILibraryName=BCIEngProbe,ext-pk-probescript=ome/anis/qf-t/core/probe/testProbe.probescript' junit.textui.TestRunner quickfix.test.acceptance.AcceptanceTestSuite

私のアプリケーションは、実際には Quickfixj パッケージ (quickfixj.org) の junit テストケースです...

上記のコマンドを実行すると、プローブが開始され、ランタイム トレースを確認できます。ただし、実行中のある時点で、ランタイム例外が発生します。

java.lang.NoClassDefFoundError: testProbe_probe$Probe_0

25-Jan-2012 10:25:11 AM quickfix.test.acceptance.ATServer run
SEVERE: error in AT server
java.lang.NoClassDefFoundError: testProbe_probe$Probe_0
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl.<init>(DocumentBuilderFactoryImpl.java)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:147)
    at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:233)
    at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:123)
    at quickfix.DataDictionary.load(DataDictionary.java:906)
    at quickfix.DataDictionary.read(DataDictionary.java:893)
    at quickfix.DataDictionary.<init>(DataDictionary.java:109)
    at quickfix.DefaultSessionFactory.getDataDictionary(DefaultSessionFactory.java:325)
    at quickfix.DefaultSessionFactory.createDataDictionary(DefaultSessionFactory.java:219)
    at quickfix.DefaultSessionFactory.processFixtDataDictionaries(DefaultSessionFactory.java:258)
    at quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:113)
    at quickfix.mina.acceptor.AbstractSocketAcceptor.createSessions(AbstractSocketAcceptor.java:242)
    at quickfix.mina.acceptor.AbstractSocketAcceptor.startAcceptingConnections(AbstractSocketAcceptor.java:99)
    at quickfix.SocketAcceptor.initialize(SocketAcceptor.java:66)
    at quickfix.SocketAcceptor.start(SocketAcceptor.java:59)
    at quickfix.test.acceptance.ATServer.run(ATServer.java:193)
    at java.lang.Thread.run(Thread.java:662)**

これは、プローブ ファイルが見つからないことを示しています。しかし、このファイルはトレースを印刷するために最初に必要でした!!???.....

さて、ここにいくつかの事実があります:

  • 簡単な junit テストを含む、他のアプリケーションを調べることができます。

    java '-agentlib:JPIBootLoader=JPIAgent:server=standalone;ProbekitAgent:ext-pk-BCILibraryName=BCIEngProbe,ext-pk-probescript=ome/anis/qf-t/core/probe/testProbe.probescript' junit.textui.TestRunner quickfix.test.acceptance.AnisJUnitTestExample

  • junitを使用してquickfix.test.acceptance.AcceptanceTestSuiteを実行できます(プローブなし):

    java junit.textui.TestRunner quickfix.test.acceptance.AcceptanceTestSuite

  • CLASSPATH に testProbe_probe$Probe_0 へのパスを設定しました

  • テストケース内から System.getenv("CLASSPATH") を呼び出しましたが、CLASSPATH は問題ないようです

  • 私のテストケースは、スレッド、ソケットなどを扱います

そして、私のシステム構成は次のとおりです。

-os: ubuntu 10.04-64bit (on VirtualBox!)

-java version "1.6.0_24"

-junit: junit-4.10.jar

-TPTP agent controller: agntctrl.linux_em64t-TPTP-4.7.2

何か案は??

ありがとう、アニス

4

0 に答える 0