在Oracle中使用Jetty进行连接池

编程入门 行业动态 更新时间:2024-10-15 02:31:55
本文介绍了在Oracle中使用Jetty进行连接池的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用Jetty服务器在Oracle中实现ConnectionPooling的概念.我已经尝试了在教程中看到的以下内容.如果使用Tomcat服务器进行部署,则可以正常工作,但是Jetty似乎给了我一个不寻常的error.详细信息如下-

I am trying to implement the concept of ConnectionPooling in Oracle using Jetty server. I have tried the following that I saw on a tutorial. It is working if I deploy using Tomcat server, but Jetty seems to be giving me an unusual error. Details are below -

我有一个名为TestServlet.java的类,定义为-

I have a class called TestServlet.java defined as -

import java.io.IOException; import java.sql.*; import javax.naming.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.sql.DataSource; @SuppressWarnings("serial") @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { public TestServlet() throws ServletException{ System.out.println("Constructor"); init(); } public DataSource dataSource; private Connection con; private Statement statement; public void init() throws ServletException { System.out.println("inside init method"); try { // Get DataSource Context initContext = new InitialContext(); System.out.println("Before envcontext"); Context envContext = (Context)initContext.lookup("java:comp/env"); System.out.println("After envcontext"); dataSource = (DataSource)envContext.lookup("jdbc/DSTest"); System.out.println(dataSource.toString()); } catch (NamingException e) { System.out.println("Exception in try"); e.printStackTrace(); } } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("Request: "+req+"\tResponse: "+resp); int i=0; ResultSet resultSet = null; try { // Get Connection and Statement con = dataSource.getConnection(); statement = con.createStatement(); String query = "SELECT * FROM USER"; resultSet = statement.executeQuery(query); while (resultSet.next()) { ++i; System.out.println(i+":\nID:"+resultSet.getString("ID") +"\nEmail:"+ resultSet.getString("UEMAIL") +"\nPassword:" + resultSet.getString("PASSWORD")+"\nFlag:"+resultSet.getShort("FLAG") +"\n"); } } catch (SQLException e) { System.out.println("EXCEPTIOn"); e.printStackTrace(); }finally { try { if(null!=resultSet)resultSet.close();} catch (SQLException e) {e.printStackTrace();System.out.println("1");} try { if(null!=statement)statement.close();} catch (SQLException e) {e.printStackTrace();System.out.println("2");} try { if(null!=con)con.close();} catch (SQLException e) {e.printStackTrace();System.out.println("3");} } }

}

我的Jetty-web.xml是-

<?xml version="1.0" encoding="UTF-8"?> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg>java:comp/env</Arg> <Arg>jdbc/DSTest</Arg> <Arg> <New class="org.apachemons.dbcp.BasicDataSource"> <Set name="driverClassName">oracle.jdbc.OracleDriver</Set> <Set name="url">ConnectionUrl</Set> <Set name="username">app_user</Set> <Set name="password">abcd</Set> </New> </Arg> </New> </Configure>

运行servlet类时,出现错误消息-

When I run the servlet class I get an error that says -

java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658) at java.lang.Class.getConstructors(Class.java:1638) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:748) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1078) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:993) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:741) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:383) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:317) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:276) at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:100) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:427) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1207) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:262) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:80) Caused by: java.lang.ClassNotFoundException: org.apachemons.pool.impl.GenericObjectPool at java.URLClassLoader$1.run(URLClassLoader.java:372) at java.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(URLClassLoader.java:360) at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415) at runjettyrun.ProjectClassLoader.loadClass(ProjectClassLoader.java:92) at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658) at java.lang.Class.getConstructors(Class.java:1638) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:748) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1078) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:993) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:741) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:383) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:317) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:276) at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:100) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:427) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1207) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:262) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:80) 2015-10-30 14:22:51.172:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8081 STARTING 2015-10-30 14:22:51.172:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.server.Server@7857fe2: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658) at java.lang.Class.getConstructors(Class.java:1638) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:748) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1078) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:993) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:741) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:383) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:317) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:276) at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:100) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:427) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1207) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:262) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:80) Caused by: java.lang.ClassNotFoundException: org.apachemons.pool.impl.GenericObjectPool at java.URLClassLoader$1.run(URLClassLoader.java:372) at java.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(URLClassLoader.java:360) at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415) at runjettyrun.ProjectClassLoader.loadClass(ProjectClassLoader.java:92) at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658) at java.lang.Class.getConstructors(Class.java:1638) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:748) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1078) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:993) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:741) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:383) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:317) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:276) at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:100) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:427) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1207) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:262) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:80) Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658) at java.lang.Class.getConstructors(Class.java:1638) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:748) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1078) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:993) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:741) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:383) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:317) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:276) at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:100) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:427) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1207) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:262) at org.eclipse.jetty.utilponent.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:80) Caused by: java.lang.ClassNotFoundException: org.apachemons.pool.impl.GenericObjectPool at java.URLClassLoader$1.run(URLClassLoader.java:372) at java.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(URLClassLoader.java:360) at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415) at runjettyrun.ProjectClassLoader.loadClass(ProjectClassLoader.java:92) ... 20 more

在查看其他stackoverflow线程后,我已将commons-dbcp-1.4.jar添加到我的eclipse中的WEB-INF/lib文件夹中.即使这样做了,在Jetty上部署时,我仍然遇到相同的错误.

I have added the commons-dbcp-1.4.jar to my WEB-INF/lib folder in eclipse after looking at other stackoverflow threads. Even after doing that, I am getting the same error when I deploy on Jetty.

我正在使用与eclipse luna 4.4.1集成的jetty服务器版本8.

I am using jetty server version 8 integrated with eclipse luna 4.4.1.

任何帮助,不胜感激.

Any help much appreciated.

推荐答案

您有3种方法可以做到:

You have 3 ways to do it:

  • 如果您在项目中使用maven或gradle,只需将commons-pool依赖项添加到pom.xml或build.gradle文件中(推荐方式)
  • 如果您不使用上述工具之一,请将正确的jar放在WEB-INF/lib目录中
  • 最后一个是将jar放在$ {jettyHome}/lib目录中
  • 请确保您为当前的commons-dbcp实现使用了Commons-pool的正确版本

    Make sure that you are using correct version of the commons-pool for your current commons-dbcp implementation

    更多推荐

    在Oracle中使用Jetty进行连接池

    本文发布于:2023-11-25 23:39:11,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1631807.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:连接池   Oracle   Jetty

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!