2017-03-20 1 views
0

を変換しながら、私はこのエラーを取得する:動的テストを実行している場合 のフルスタックトレース:(をのみoccures、静的@Testが正常に動作します)にClassNotFoundExceptionのXQueryとXMLを変換しようとするとXML

java.lang.ExceptionInInitializerError 
    at weblogic.xml.query.parsers.StAXCursorAdaptor.open(StAXCursorAdaptor.java:71) 
    at weblogic.xml.query.runtime.InlinedXML.init(InlinedXML.java:63) 
    at weblogic.xml.query.iterators.FirstOrderIterator.open(FirstOrderIterator.java:169) 
    at weblogic.xml.query.runtime.constructor.SuperElementConstructor.prepOpen(SuperElementConstructor.java:168) 
    at weblogic.xml.query.runtime.constructor.SuperElementConstructor.prepOpenElement(SuperElementConstructor.java:153) 
    at weblogic.xml.query.runtime.constructor.ElementConstructor.open(ElementConstructor.java:91) 
    at weblogic.xml.query.runtime.constructor.SuperElementConstructor.prepOpen(SuperElementConstructor.java:168) 
    at weblogic.xml.query.runtime.constructor.SuperElementConstructor.prepOpenElement(SuperElementConstructor.java:153) 
    at weblogic.xml.query.runtime.constructor.PartMatElemConstructor.open(PartMatElemConstructor.java:92) 
    at weblogic.xml.query.runtime.core.LetIterator.fetchNext(LetIterator.java:128) 
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104) 
    at weblogic.xml.query.runtime.core.LetIterator.fetchNext(LetIterator.java:133) 
    at weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:163) 
    at weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:160) 
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104) 
    at weblogic.xml.query.runtime.core.ExecutionWrapper.fetchNext(ExecutionWrapper.java:88) 
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104) 
    at org.apache.xmlbeans.impl.store.XqrlImpl$SegmentedIterator.nextSegment(XqrlImpl.java:1604) 
    at org.apache.xmlbeans.impl.store.XqrlImpl.executeQueryToXmlObjects(XqrlImpl.java:1567) 
    at org.apache.xmlbeans.impl.store.XqrlImpl.access$000(XqrlImpl.java:53) 
    at org.apache.xmlbeans.impl.store.XqrlImpl$CompiledQuery.objectExecute(XqrlImpl.java:302) 
    at org.apache.xmlbeans.impl.store.Query.objectExecQuery(Query.java:80) 
    at org.apache.xmlbeans.impl.store.Xobj.exec_query(Xobj.java:2525) 
    at org.apache.xmlbeans.impl.values.XmlObjectBase.execQuery(XmlObjectBase.java:525) 
    at de.db.udg.componenttest.XQueryTester.transform(XQueryTester.java:574) 
    at de.db.udg.componenttest.XQueryTester.test(XQueryTester.java:283) 
    at de.db.udg.componenttest.XQueryTester.testBody(XQueryTester.java:182) 
    at XQTest.lambda$null$0(XQTest.java:36) 
    at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) 
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.registerAndExecute(TestFactoryTestDescriptor.java:132) 
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$null$0(TestFactoryTestDescriptor.java:92) 
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) 
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:91) 
    at org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40) 
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:83) 
    at org.junit.jupiter.engine.descriptor.MethodTestDescriptor.execute(MethodTestDescriptor.java:155) 
    at org.junit.jupiter.engine.descriptor.MethodTestDescriptor.execute(MethodTestDescriptor.java:63) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$0(HierarchicalTestExecutor.java:80) 
    at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$0(HierarchicalTestExecutor.java:87) 
    at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$0(HierarchicalTestExecutor.java:87) 
    at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:51) 
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43) 
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:129) 
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) 
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:59) 
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: weblogic.xml.stax.XMLStreamInputFactory 
    at weblogic.xml.query.parsers.StAXFactoryHelper.<clinit>(StAXFactoryHelper.java:20) 
    ... 67 more 
Caused by: java.lang.ClassNotFoundException: weblogic.xml.stax.XMLStreamInputFactory 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at weblogic.xml.query.parsers.StAXFactoryHelper.<clinit>(StAXFactoryHelper.java:17) 
    ... 67 more 
!このラインで

return Stream.of(arrayTuple4).map(
     tuple -> DynamicTest.dynamicTest("Testcase: " + tuple.a + "/" + tuple.b + "/" + tuple.c + "/" + tuple.d,() -> { 

      if(tuple.c.contains("PAY")){ 
     here -->  Assert.assertTrue(new XQueryTester(tuple.a, tuple.b).testBody(tuple.c,tuple.d)); 

      } 
      else{ 
       Assert.assertTrue(new XQueryTester(tuple.a, tuple.b).testHeader(tuple.c,tuple.d)); 
      } 
     })); 

マイXQueryが含まれています

<fred:WERK>{fn:data($head/isi:WERK[1])}</fred:WERK> 
を210

これは私のXQueryの配列のために発生したと思います。しかし、weblogic.xml.stax.XMLStreamInputFactoryのJarファイルが見つかりません。

WebLogic Serverで実行している場合は、すべて問題ありません。

EDIT:のように静的dynamicTestなし@Testとラムダ式を書く: マイトランスフォーマーエンジン:

<dependency> 
     <groupId>com.bea.core</groupId> 
     <artifactId>antlr</artifactId> 
     <version>2.7.7</version> 
    </dependency> 

    <dependency> 
     <groupId>com.bea.core</groupId> 
     <artifactId>binxml</artifactId> 
     <version>1.3.0.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.bea.core.xquery</groupId> 
     <artifactId>beaxmlbeans-interop</artifactId> 
     <version>1.3.0.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.bea.core.xquery</groupId> 
     <artifactId>xmlbeans-interop</artifactId> 
     <version>1.3.0.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.bea.core</groupId> 
     <artifactId>xquery</artifactId> 
     <version>1.3.0.0</version> 
    </dependency> 

XQueryTester tester= new XQueryTester("...", "..."); 

AssertTrue(tester.testBody(..,..)); 

は細かい

EDITをオールズソリューション: com.beaの使用.core.utils.full_1.10.0.0.jar およびcom.bea.core.weblogic.stax_1.10.0.0.jar

が問題を解決しました。

+0

いいえ、手がかりを得ました...? – Hendrik

答えて

0

ClassNotFoundExceptionは、実行中のコードがクラスパスにないもの(この場合はweblogic.xml.stax.XMLStreamInputFactoryクラス)に依存していることを示します。依存関係は、独自のコードまたは呼び出すライブラリに存在する可能性があります。静的な依存関係(Javaコードからの明示的な呼び出し)、または動的な依存関係(たとえば、システムプロパティの設定によって識別されるクラスの読み込みなど)である可能性があります。

このクラスの具体的な参照あなたのコード内にあるか、クラスを含むJARをどこに見つけるか。しかし、このクラス名でStackOverflow(Google)を検索すると、同様の問題を抱えているかなりの数の人が表示されます。

まず、使用しているXQueryプロセッサーを教えてください。

+1

'ClassNotFoundException'は動的ロードでのみ発生します。静的に参照されていないクラスがなければ、 'ClassDefNotFoundError'が発生します。 –

+0

@SebastianRedlが既に述べたように、テストを動的に実行しようとするとこのエラーが発生します。 オリジナルの投稿を編集しました。 – Hendrik

関連する問題