2

Play 2.2 にアップグレードした後、次のエラーが表示されます。

org.xml.sax.SAXNotRecognizedException: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.setFeatures(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(Unknown Source)
at play.api.Play$.<init>(Play.scala:45)
at play.api.Play$.<clinit>(Play.scala)
at play.core.server.NettyServer$$anonfun$12.apply(NettyServer.scala:152)
at play.core.server.NettyServer$$anonfun$12.apply(NettyServer.scala:151)
at scala.Option.foreach(Option.scala:236)
at play.core.server.NettyServer.<init>(NettyServer.scala:151)
at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:310)
at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:308)
at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
at play.core.server.NettyServer$.mainDev(NettyServer.scala:307)
at play.core.server.NettyServer$.mainDevHttpMode(NettyServer.scala:303)
at play.core.server.NettyServer.mainDevHttpMode(NettyServer.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.apply(PlayRun.scala:233)
at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.apply(PlayRun.scala:91)
at scala.Function7$$anonfun$tupled$1.apply(Function7.scala:35)
at scala.Function7$$anonfun$tupled$1.apply(Function7.scala:34)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)

オラクルの最新のJDKであるOS Xで実行しており、play 2.2.0およびsbt 0.13のプラグインをアップグレードしています。

"play 2.2.0 built with Scala 2.10.2 (running Java 1.7.0_40), http://www.playframework.com"

始めるとき。

これを解決する方法がわかりません。大歓迎です。

4

1 に答える 1

3

問題が見つかりました。プロジェクトの依存関係に関連する問題です。Play 2.2.0 は、XercesImpl 2.11.0 の dep とともに提供されます。

Play.Scala の 45 行目には、次の行があります。

    SAXParserFactory.newInstance("org.apache.xerces.jaxp.SAXParserFactoryImpl", Play.getClass.getClassLoader)

...

// new line in play2.2.0
xercesSaxParserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true)

そのため、プロジェクトに XercesImpl の古いバージョンに依存する別のライブラリがある場合 (私の場合のように)、クラスローダーは「XMLConstants.FEATURE_SECURE_PROCESSING をサポートしない古い「org.apache.xerces.jaxp.SAXParserFactoryImpl」を使用する可能性があります。 "。

dep を分析し、問題の原因となっている依存関係を見つけようとする必要があります。私の場合、これは古い、サポートされていないライブラリであり、古い Xerces が必要なため、注意が必要です...簡単な解決策ではありません:(

于 2013-09-25T16:58:35.893 に答える