- PR -

Oralce10gのXMLTypeとXMLの作成

1
投稿者投稿内容
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2007-03-06 14:09
こんにちは、お世話になっています。

今 Oracle10g にXML文書を格納する、ということをしています。

テーブルは
CREATE TABLE DOCS (
ID NUMBER(20) NOT NULL,
DATA XMLTYPE
PRIMARY KEY(ID)
)

XMLの格納は
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19255-01/xdb11jav.htm
を参照に

XMLの作成は
http://www.techscore.com/tech/J2SE/DOM/3.html
を参照にしました。

しかし2つの問題が発生しました。
1)XMLType.createXMLで
  ClassCastException
  が発生する
2)Transformer.transformで
  javax.xml.transform.TransformerException: XML-22101: (Fatal Error) DOMSource node as this type not supported.
  が発生する

1)
サーバTomcatのDatasourceを利用してConnctionを取得した際に発生しました。
DriverManagerを使用してConnectionを取得すれば問題は発生しません。

2)
素で作成すると発生しないのですが、1)のXMLTypeを利用するために
Oracleのライブラリxmlparserv2.jarとxdb.jarをクラスパスに通すと
発生します。


このことについて何か回避方法をご存知の方いらっしゃいませんでしょうか。

よろしくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-07 02:08
せっかくの商用製品ですからサポート窓口に問いあわせてみてはいかがでしょう?
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2007-03-09 17:53
お返事ありがとうございます。

先ほどOracleに問い合わせました。
早く結果が出るといいな

解決しましたらまたそのときに。
Objekt
会議室デビュー日: 2006/07/29
投稿数: 2
投稿日時: 2007-03-10 08:48
こんにちは。

問題1については、Tomcat の DataSource が返す Connection が OracleConnection を
ラップした DataSource の独自 Connection であるからではないかと思います。

# connection.close() で実際に Connection を閉じずにプールに返すよう、
# なんらかのラッパーで OracleConnection をラップしているわけです。

Commons DBCP を使っていると仮定するならば、DelegatingConnection でキャストして
getDelegate() すればラップ元の Connection を取得できるはずです。

http://jakarta.apache.org/commons/dbcp/apidocs/org/apache/commons/dbcp/DelegatingConnection.html

問題2についてはよくわかりません。
1

スキルアップ/キャリアアップ(JOB@IT)