S2jdbc-genのタスク実行時に出るエラーの解決方法
S2jdbc-genのアントタスクを実行した際に以下のようなエラーが出て、タスクが実行できないケースがあります。
(環境:SAStruts、S2JDBC、H2Database)
s2jdbc-gen-build.xml:29: Exception in thread "main" java.lang.ExceptionInInitializerError at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:135) at org.seasar.extension.jdbc.gen.internal.util.SingletonS2ContainerFactorySupport.init(SingletonS2ContainerFactorySupport.java:61) at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.init(AbstractCommand.java:196) at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:155) at org.seasar.extension.jdbc.gen.internal.command.CommandAdapter.main(CommandAdapter.java:46) Caused by: org.seasar.framework.exception.ParserConfigurationRuntimeException: [ESSR0053]パーサの設定に問題があります。理由はjavax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized. at org.seasar.framework.util.SAXParserFactoryUtil.newSAXParser(SAXParserFactoryUtil.java:75) at org.seasar.framework.container.factory.XmlS2ContainerBuilder.createSaxHandlerParser(XmlS2ContainerBuilder.java:192) at org.seasar.framework.container.factory.XmlS2ContainerBuilder.parse(XmlS2ContainerBuilder.java:167) at org.seasar.framework.container.factory.XmlS2ContainerBuilder.build(XmlS2ContainerBuilder.java:148) at org.seasar.framework.container.factory.S2ContainerFactory.configure(S2ContainerFactory.java:237) at org.seasar.framework.container.factory.S2ContainerFactory.configure(S2ContainerFactory.java:215) at org.seasar.framework.container.factory.S2ContainerFactory.<clinit>(S2ContainerFactory.java:120) ... 5 more Caused by: javax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized. at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source) at org.seasar.framework.util.SAXParserFactoryUtil.newSAXParser(SAXParserFactoryUtil.java:73) ... 11 more
上記のようなエラーが発生する場合は、以下の手順を行うことで解決するそうです。
1.src/main/resources に META-INF/servicesディレクトリを作成。
2.作成したディレクトリ以下にjavax.xml.parsers.SAXParserFactory というテキストファイルを作成。
3.テキストファイル内に以下の1文を記述
com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl