[Seasar-user:17598] [S2Work]FatJarにするとIllegalArgumentExceptionが発生
HALT halt
[E-MAIL ADDRESS DELETED]
2009年 6月 3日 (水) 08:17:21 JST
お世話になっております。
大塚と申します。
S2Work+clworkのサンプルをFatJar(Uber-Jar)として固めて、
java -classpath example.jar org.seasar.xwork.example.webwork.Main
の様に実行すると、以下のエラーが発生しました。
※このFatJarを解凍して実行すると、処理が正常終了します。
-----------------エラー内容ここから------------------
Exception in thread "main" java.lang.IllegalArgumentException: Parameter 'directory' is not a directory
at org.apache.commons.io.FileUtils.listFiles(FileUtils.java:293)
at org.seasar.xwork.annotation.AnnotationConfigurationProvider.searchAnnotation(AnnotationConfigurationProvider.java:85)
at org.seasar.xwork.annotation.AnnotationConfigurationProvider.init(AnnotationConfigurationProvider.java:72)
at com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:86)
at com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at com.opensymphony.xwork.DefaultActionProxy.(DefaultActionProxy.java:60)
at com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:39)
at org.seasar.xwork.clwork.CommandLineDispatcher.dispatch(CommandLineDispatcher.java:48)
at org.seasar.xwork.example.webwork.Main.main(Main.java:15)
-------------------エラー内容終り--------------------
そこで、s2xwork-tigerの当該箇所のコードを見てみると、
org.seasar.xwork.annotation.AnnotationConfigurationProvider#searchAnnotation()
で
File root = AnnotationConfigurationProvider.getRootPath(resource);
Collection files = FileUtils.listFiles(
new File(root.getAbsolutePath()+ File.separator + classPackage.replace(".", File.separator)),
new SuffixFileFilter("class"),
TrueFileFilter.INSTANCE);
のような処理になっていました。
本番での稼動を考えると、FatJarによる配備が望ましいのですが、
FatJarで実行する場合はXWorkActionアノテーション(というかs2xwork-tiger)
を利用できないのでしょうか?
また、FatJarで実行する為の代替方法があればご教示いただけると幸いです。
_________________________________________________________________
Hotmail が進化した!セキュリティーもばっちり!
http://clk.atdmt.com/GBL/go/153791838/direct/01/
Seasar-user メーリングリストの案内