Oracle ADF-Tomcat 6.x-MySql 5.5-java.lang.AbstractMethodError [英] Oracle ADF - Tomcat 6.x - MySql 5.5 - java.lang.AbstractMethodError
问题描述
我们使用以下软件开发了Oracle ADF Web应用程序
We developed a Oracle ADF web app using
- jDeveloper 11.1.2.4
- MySql 5.5
,在获得了Google的大量帮助之后,我们将这篇文章部署到了tomcat上.
and after a lot of google help we deployed our app onto tomcat this post.Oracle ADF onto Tomcat 6.x
在以上文章中,他使用了Oracle Db.我们在Oracle上部署了一个测试应用程序.运行良好.但是我们原始的应用程序必须与MySql一起使用.我们已经如下设置了连接配置. 在conf/context.xml
In the above post he used Oracle Db. We deployed a test app with Oracle. Its running fine. But our original app has to work with MySql. We have setup our connection configuration as follows. In conf/context.xml
<ResourceLink global="jdbc/webApp" name="jdbc/MySqlCOnDSDS" type="javax.sql.DataSource"/>
conf/server.xml
conf/server.xml
<Resource name ="jdbc/webApp" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/easyrun"
username="teja" password="teja"
maxActive="20" maxIdle="10" maxWait="10000"/>
当我们尝试运行页面(first.jsf)时,出现以下错误.
when we are trying to run our page(first.jsf) we are getting the following error.
javax.servlet.ServletException: Servlet execution threw an exception
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
root cause
java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.isClosed()Z
oracle.jbo.server.QueryCollection.setResultSetState(QueryCollection.java:5624)
oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:4859)
oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:7306)
oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:4768)
oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:1294)
oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:913)
oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:7282)
oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1227)
oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:1413)
oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:1319)
oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:1304)
oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:7211)
oracle.adf.model.bc4j.DCJboDataControl.executeIteratorBindingIfNeeded(DCJboDataControl.java:1366)
oracle.adf.model.binding.DCIteratorBinding.executeQueryIfNeeded(DCIteratorBinding.java:2219)
oracle.jbo.uicli.binding.JUCtrlHierBinding.getRootNodeBinding(JUCtrlHierBinding.java:92)
oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.addRowKeyChangeListener(FacesCtrlHierBinding.java:616)
oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils.registerRowKeyChangeListener(TableRendererUtils.java:2715)
oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:758)
oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:617)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
请帮助我们.
谢谢.
推荐答案
Tomcat 6数据源实现未升级为与Java 1.6兼容.
Tomcat 6 datasource implementation is not upgraded to work with Java 1.6.
您可以按照以下步骤切换到Apache数据源实现:
You can switch to Apache Datasource implementation by following the steps:
- 下载commons-dbcp 1.4并将其复制到$ CATALINA_HOME/lib
- 下载commons-pool 1.5.5并将其复制到$ CATALINA_HOME/lib
- 更改资源"标签以包括以下属性: factory ="org.apache.commons.dbcp.BasicDataSourceFactory"
- Download and copy commons-dbcp 1.4 to $CATALINA_HOME/lib
- Download and copy commons-pool 1.5.5 to $CATALINA_HOME/lib
- Change your "Resource" tag to include the following attribute: factory="org.apache.commons.dbcp.BasicDataSourceFactory"
这篇关于Oracle ADF-Tomcat 6.x-MySql 5.5-java.lang.AbstractMethodError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!