休止状態を使用してOracleからCLOBを読み込みます。 clob.getCharcterStream()またはgetAsciiStream()の場合は、Closed connectionという例外がスローされます。</p> <p>私はセッションファクトリからセッションを取得し、永続的なオブジェクトのうち、CLOBを取得..私はここでの問題が何であるかを見つけることに大きな頭痛の種を持っています
誰かが私に助けてくれますか?
コード:
Session session = Dao.getSession(connId);
Package pack = (Package) session.load(Package.class, packId);
Hibernate.initialize(pack);
Clob reportClob = pack.getExpReportFile();
String result = null;
InputStream stream = null;
try
{
System.out.println(session.isConnected() + " " + session.isOpen());
stream = reportClob.getAsciiStream();
result = IOUtils.toString(stream);
}
catch (SQLException e)
{
e.printStackTrace();
}
return result;
例外:
true true
java.sql.SQLException: Closed Connection
at oracle.sql.CLOB.getDBAccess(CLOB.java:1389)
at oracle.sql.CLOB.getAsciiStream(CLOB.java:330)
at org.hibernate.lob.SerializableClob.getAsciiStream(SerializableClob.java:68)
at com.server.WebServiceImpl.fetchPackageReport(WebServiceImpl.java:2070)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
(これは私のために閉じられた接続エラーを修正)、オープン・トランザクションのために、私は挿入真session.beginTransaction()Hibernate.initialize()ステートメントの直後..それも動きませんでした.. – JSixface
oracle dbはそれですか?オラクル9? – ayush
Oracleデータベース10g – JSixface