The net is vast
プログラミングや、コンピュータなどの備忘録です。 主にRuby, Java, Linux, 等を扱います。アルゴリズムも扱いたいな。
1:37

GAE/JでXMLを操る

Category: By jx
GAE/Jで開発をしていると、どうしてもXMLを操らなきゃいけないときがあります。開発機でRomeを使って動いたぞと思って本番環境にデプロイしても動作しません。下のような例外が発生してしまいます。
Could not load default SAX parser
なんて言われてしまいます。これを解決するにはxercesの次のjarが必要になります。
  • serializer.jar
  • xercesImpl.ja
  • xercesSamples.jar
  • xml-apis.jar
これでも実はまだ足りません。XPathを使おうと思っても、xercesにはXPathのAPIは用意されておらず、
XPathFactory.newInstance()
上のようにするとやはり例外が発生してしまいます。
XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
これを解決するには、xalanが必要になります。 結局、xalanにはxercesが含まれている?ので結局、xalan-j_2_7_1の以下のjarをWEB-INF/libの下に配置します。
  • serializer.jar
  • xalan.jar
  • xercesImpl.jar
  • xml-apis.jar
  • xsltc.jar
さらに、
XPathFactory.newInstance()
のように書いてもダメで、次のように書かなければ行けません。
new org.apache.xpath.jaxp.XPathFactoryImpl();
まとめると、
  1. Romeを使用して
  2. xalanのjarを使って
  3. new org.apache.xpath.jaxp.XPathFactoryImpl()で、Factoryを作成します
 

0 comments so far.

Something to say?