[Seasar-user:19941] Re: Jarで実行した場合に[WSSR0013]エラーになる

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2010年 7月 2日 (金) 11:58:16 JST


小林 (koichik) さん
 
お世話になっております。森田です。
少し長くなりますが、まとめてみました。
 
batch
├lib
│└共通で使用するjar...
├BatchA.jar
│├META-INF
││ └MANIFEST.MF
│├jp
││└xx
││ └xx
││  └batch
││   ├dao
││   ├dto
││   ├…
││   ├BatchA.class
││   ├BatchB.class
││   ├BatchC.class
│├MessageResources.properties
│├aop.dicon
│├app.dicon
│├batch.dicon
│├env.txt
│├system.properties
│├system_LOCL.properties
│├validators.xml
├BatchB.jar
├BatchC.jar
【BatchA.java】
public static void main(String[] args){
SingletonS2ContainerFactory.setConfigPath("batch.dicon");
SingletonS2ContainerFactory.init();
 
【batch.dicon】
<components>
  <include path="convention.dicon"/>○
  <include path="aop.dicon"/>○
  <include path="config.dicon"/>○
  <include path="j2ee.dicon"/>△
  <include path="dxo.dicon" />△
  <include path="dao.dicon" />△
  <include path="s2mai.dicon"/>△
</components>
○印はJar直下にあり、△印はlibのjarに含まれています。
batch.diconに定義している全てが「見つかりませんでした」で出力されます。
 
【config.dicon】
<components>
 <include path="s2config-core.dicon"/>
 <component name="configContainer" class="org.seasar.config.core.container.impl.ConfigContainerImpl" instance="prototype">
  <property name="configName">"system"</property>
  <initMethod name="loadToBeans"/>
 </component>
</components>
※上記を下記のソースに修正すると動きます。
  <property name="configName">"system_LOCL"</property>

【convention.dicon】
<components>
    <component
        class="org.seasar.framework.convention.impl.NamingConventionImpl">
        <initMethod name="addRootPackageName">
            <arg>
              "xx.xx.xxx.xx.manager"
            </arg>
        </initMethod>
        <initMethod name="addRootPackageName">
            <arg>
              "xx.xx.xxx.xx.manager.batch"
            </arg>
        </initMethod>
    </component>
 <component class="org.seasar.framework.convention.impl.PersistenceConventionImpl"/>
</components>
【system.properties】
env=LOCL  ※←ここでLOCLを指定
mail.host=null
mail.port=null
jdbc.URL=jdbc:oracle...
jdbc.user=system
jdbc.password=1
mail.reissue.password.from=
db.member.password.salt=xxxx
db.user.password.salt=xxxx
 
※system_LOCL.propertiesにはmail.host、mail.port等の設定は記述してあります。
 
※尚、SystemConfig.javaは下記に配置しています。
xx.xx.xxx.xx.manager/config/SystemConfig.java
ENV.txtにはutを指定。
 
Eclipseでmainを直接実行した場合も、config.diconをsystem_LOCLに書き換えて実行した場合も
「見つかりませんでした」は同様に出力されます。
 
エラー終了になっていた原因ですが、前回は省略していましたが、「見つかりませんでした」がbatch.diconで定義分出力された
後に下記のようなエラーで落ちていましたが、Eclipseや今回は「見つかりませんでした」の後に正常に処理が続きます。
 
Exception in thread "main" org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(org.seasar.mai.interceptors.S2MaiInterceptor)のプロパティ(sendMail)の設定に失敗しました。理由はo
rg.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(org.seasar.mai.mail.impl.SendMailImpl)のプロパティ(port)の設定に失敗しました。理由はjava.lang.NumberFormatException: For inp
ut string: "null"
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.getValue(AbstractBindingTypeDef.java:297)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:217)
        at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:58)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:78)
        at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:68)
        at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:68)
        at org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:48)
        at org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:76)
        at org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:236)
        at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:563)
        at org.seasar.framework.container.impl.ThreadSafeS2ContainerImpl.init(ThreadSafeS2ContainerImpl.java:172)
        at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:560)
        at org.seasar.framework.container.impl.ThreadSafeS2ContainerImpl.init(ThreadSafeS2ContainerImpl.java:172)
        at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:165)
        at xx.xx.xxx.xx.manager.batch.BatchAクラス.main(BatchA.java:38) ※SingletonS2ContainerFactory.init();の実行時
Caused by: org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(org.seasar.mai.mail.impl.SendMailImpl)のプロパティ(port)の設定に失敗しました。理由はjava.lang.NumberFormatExcept
ion: For input string: "null"
        at org.seasar.framework.beans.impl.PropertyDescImpl.setValue(PropertyDescImpl.java:277)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.setValue(AbstractBindingTypeDef.java:321)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindManual(AbstractBindingTypeDef.java:127)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:74)
        at org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTypePropertyDef.java:50)
        at org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTypePropertyDef.java:41)
        at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:56)
        at org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:68)
        at org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:48)
        at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111)
        at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
        at org.seasar.framework.container.assembler.AbstractBindingTypeDef.getValue(AbstractBindingTypeDef.java:295)
        ... 14 more
Caused by: java.lang.NumberFormatException: For input string: "null"
        at java.lang.NumberFormatException.forInputString(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.<init>(Unknown Source)
        at org.seasar.framework.util.IntegerConversionUtil.toInteger(IntegerConversionUtil.java:77)
        at org.seasar.framework.util.IntegerConversionUtil.toInteger(IntegerConversionUtil.java:59)
        at org.seasar.framework.util.IntegerConversionUtil.toInteger(IntegerConversionUtil.java:41)
        at org.seasar.framework.util.NumberConversionUtil.convertPrimitiveWrapper(NumberConversionUtil.java:74)
        at org.seasar.framework.beans.impl.PropertyDescImpl.convertPrimitiveWrapper(PropertyDescImpl.java:320)
        at org.seasar.framework.beans.impl.PropertyDescImpl.convertIfNeed(PropertyDescImpl.java:301)
        at org.seasar.framework.beans.impl.PropertyDescImpl.setValue(PropertyDescImpl.java:243)
        ... 25 more

また、他に足りない情報がありましたら、ご指摘下さい。
 
よろしくお願いいたします。

--------------------------------------
2010 FIFA World Cup News [Yahoo!Sports/sportsnavi]
http://pr.mail.yahoo.co.jp/southafrica2010/
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100702/44aac528/attachment.html>


Seasar-user メーリングリストの案内