2011-06-21 22 views
0

我有一個實體與下面的字段。用openJPA提取NoClassDefFoundError到一個字節[]拋出一個大的Blob DB2

@Lob 
@Column(name = "image", nullable = false) 
private byte[] image; 

我堅持實體與5MB圖像的工作沒有問題,但是當我嘗試獲取它得到一個異常。 (儘管較小的圖像尺寸完美無缺!)。 這是一個NoClassDefFoundError ,但它只發生在這個大圖像

我在這裏發佈了完整的堆棧跟蹤。我希望你能指點我一個方向。也許有一些JDBC財產一樣maxBlobSize,我不知道:( TY

2011-06-21 13:48:11 [DEBUG] EXCEPTION LOGGER GOT NoClassDefFoundError Message: com.ibm.db2.jcc.am.d Cause: ClassNotFoundException CauseMsg: com.ibm.db2.jcc.am.d 
java.lang.J9VMInternals.verifyImpl(Native Method) 
java.lang.J9VMInternals.verify(J9VMInternals.java:72) 
java.lang.J9VMInternals.initialize(J9VMInternals.java:134) 
com.ibm.db2.jcc.t4.d.c(d.java:1454) 
com.ibm.db2.jcc.am.ic.a(ic.java:944) 
com.ibm.db2.jcc.am.ic.T(ic.java:1948) 
com.ibm.db2.jcc.am.ym.getBlob(ym.java:1356) 
com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.getBlob(WSJdbcResultSet.java:740) 
org.apache.openjpa.lib.jdbc.DelegatingResultSet.getBlob(DelegatingResultSet.java:580) 
org.apache.openjpa.jdbc.sql.DBDictionary.getBlob(DBDictionary.java:541) 
org.apache.openjpa.jdbc.sql.DBDictionary.getBytes(DBDictionary.java:604) 
org.apache.openjpa.jdbc.sql.ResultSetResult.getBytesInternal(ResultSetResult.java:290) 
org.apache.openjpa.jdbc.sql.ResultSetResult.getObjectInternal(ResultSetResult.java:421) 
org.apache.openjpa.jdbc.sql.AbstractResult.getObject(AbstractResult.java:694) 
org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadDataStore(HandlerStrategies.java:217) 
org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:186) 
org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:813) 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1060) 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1012) 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:378) 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:278) 
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCStoreManager.initialize(WsJpaJDBCStoreManager.java:144) 
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111) 
org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57) 
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:913) 
org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:871) 
org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:793) 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:986) 
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCStoreManager.load(WsJpaJDBCStoreManager.java:107) 
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:278) 
org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2415) 
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:272) 
org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:56) 
org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1294) 
org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1221) 
org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990) 
org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:848) 
org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:779) 
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:525) 
org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:254) 
org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:317) 
com.ibm.ompetestweb.ejb.beans.ImageServerBean.findImageByRftLogfileSource(ImageServerBean.java:39) 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:600) 
com.ibm.ejs.container.EJSContainer.invokeProceed(EJSContainer.java:5874) 
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:586) 
com.ibm.ompetestweb.interceptors.LoggingInterceptor.onMethodCall(LoggingInterceptor.java:53) 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:600) 
com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(InterceptorProxy.java:227) 
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:566) 
com.ibm.ejs.container.interceptors.InvocationContextImpl.doAroundInvoke(InvocationContextImpl.java:217) 
com.ibm.ejs.container.EJSContainer.invoke(EJSContainer.java:5766) 
com.ibm.ompetestweb.ejb.interfaces.EJSLocal0SLImageServerBean_abf730e0.findImageByRftLogfileSource(EJSLocal0SLImageServerBean_abf730e0.java) 
com.ibm.ompetestweb.ui.servlets.ImageServlet.doGet(ImageServlet.java:43) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:718) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:831) 
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657) 
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597) 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104) 
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77) 
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908) 
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934) 
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) 
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) 
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826) 
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) 
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) 
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504) 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301) 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) 
com.ibm.ws390.channel.xmem.XMemConnLink.ready(XMemConnLink.java:844) 
com.ibm.ws390.channel.xmem.XMemInboundChannel.handleRequest(XMemInboundChannel.java:340) 
com.ibm.ws390.xmem.XMemSRBridgeImpl.httpinvoke(XMemSRBridgeImpl.java:104) 
com.ibm.ws390.xmem.XMemSRCppUtilities.httpinvoke(XMemSRCppUtilities.java:74) 
com.ibm.ws390.orb.ServerRegionBridge.httpinvoke(ServerRegionBridge.java:215) 
com.ibm.ws390.orb.ORBEJSBridge.httpinvoke(ORBEJSBridge.java:281) 
sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:600) 
com.ibm.ws390.orb.parameters.HTTPInvoke.HTTPInvokeParmSetter(HTTPInvoke.java:101) 
com.ibm.ws390.orb.CommonBridge.nativeRunApplicationThread(Native Method) 
com.ibm.ws390.orb.CommonBridge.runApplicationThread(CommonBridge.java:464) 
com.ibm.ws.util.ThreadPool$ZOSWorker.run(ThreadPool.java:1763) 
+0

數據庫中'image'LOB列的大小是多少? –

+0

這是一個BLOB(5M)。我非常確定該圖像比blobsize小(它應該在插入時拋出SQLException,如果不是的話)但是我會在明天提高到BLOB(10M)。 – unR

+0

「堅持使用5MB圖像的我的實體不需要pr但是,當我試圖獲取它時得到一個異常。「如果它是一個5MB的列,它可能被截斷時,它被保存,然後它可能不會被序列化,因此它是noClassDefFound。 –

回答

1

設置驅動程序屬性fullyMaterializeLobData的。最有可能的司機正試圖拋出你和例外,但它的類丟失如果可能,我建議遷移到類型4驅動程序。

相關問題