私はgrailsプロジェクトに取り組んでおり、プロジェクトのlibディレクトリに.jarファイルを配置しました。
grailsプロジェクトで使用しているJavaファイルの1つで、ClassNotFoundExceptionのランタイム例外が発生し続けます。
私はそのように定義されたメソッドを持っています:
void printValues(org.docx4j.wml.ParaRPr rpr){
}
そして、私は次のようなセクションをインポートします
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.docx4j.wml.Body;
import org.docx4j.wml.Style;
これが例外をスローしているものです。
ただし、メソッドを次のように変更すると
void printValues(org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart rpr){
}
ランタイム例外は発生しません。
ここで何が起こっているのでしょうか?docx4j.jarファイルにParaRPrが含まれていることを確認しましたが、含まれています。これらのクラスが公開されていることを確認しました。また、org.docx4j.wmlディレクトリとは異なるクラスを試しましたが、例外を与えるものと、与えないものがあります。これはどうして可能ですか?
完全なスタックトレースは次のとおりです。
2010-09-15 12:37:00,198 [http-8080-1] ERROR errors.GrailsExceptionResolver - org.docx4j.wml.ParaRPr
java.lang.ClassNotFoundException: org.docx4j.wml.ParaRPr
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
at javatest.ResumeController$_closure4.doCall(ResumeController.groovy:47)
at javatest.ResumeController$_closure4.doCall(ResumeController.groovy)
at java.lang.Thread.run(Thread.java:619)
[groovyc] Compiling 1 source file to C:\dev\JavaTest\target\classes
これがjarファイルのjar-tfの出力です-そこにParaRPrクラスが表示されています
$ jar -tf docx4j-nightly-20100914.jar | grep Para
org/docx4j/dml/CTTextParagraph.class
org/docx4j/dml/CTTextParagraphProperties.class
org/docx4j/dml/diagram/CTParameter.class
org/docx4j/dml/diagram/STParameterId.class
org/docx4j/math/CTOMathPara.class
org/docx4j/math/CTOMathParaPr.class
org/docx4j/model/properties/paragraph/AbstractParagraphProperty.class
org/docx4j/wml/CTParaRPrOriginal.class
org/docx4j/wml/ParaRPr.class
org/docx4j/wml/ParaRPrChange.class
org/pptx4j/pml/CTTLBuildParagraph.class
org/pptx4j/pml/CTTLTimeNodeParallel.class
org/pptx4j/pml/STTLParaBuildType.class
org/xlsx4j/sml/CTParameter.class
org/xlsx4j/sml/CTParameters.class
org/xlsx4j/sml/STParameterType.class