在MyEclipse中配置JNDI DataSource

MyEclipse中配置JNDI DataSource

       费了好一段时间,终于把Tomcat6中的JDBC数据源给配好。

我使用的是Tomcat 6.0 + MyEclipse6.0 + Mysql5.0,发现网上这个搭配并不多,自己参照官方文档,好不容易终于搞定了,自己英语有点菜。

 

 

步骤一: MyEclipse下新建一个Web Projectnetshop),并将mysql-connector-java-5.1.6-bin.jarjstl.jarstandard.jar三个jarcopy/WEB-INF目录下,

这三个jar包都可以在其官方网站下载。其中后面的两个是后来在测试页面中所需要使用的,当然也可以不用,但是第一个jar包则必须要使用,除非你不连接

数据库。此时的目录结构如下:

 

注:在Mysql中,实现已经建立了一个database(javatest)和一个表(testdata)

建表代码如下:

 

mysql> create database javatest;
mysql> use javatest;
mysql> create table testdata (
    ->   id int not null auto_increment primary key,
    ->   foo varchar(25), 
    ->   bar int);

 

mysql> insert into testdata values(null, 'hello', 12345);

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from testdata;

+----+-------+-------+

| ID | FOO   | BAR   |

+----+-------+-------+

|  1 | hello | 12345 |

+----+-------+-------+

1 row in set (0.00 sec)

 

mysql>

 

 

如此,就在mysql中配置好了数据库和表。

 

数据库用户名和密码如下:

usernameroot

passwordpasswd

步骤二:配置%CATALINA_HOME%/conf/server.xml,其配置过程与在tomcat5.x.x中有些不同。其部分代码如下:

      

      

 

  

 <Context path="/netshop" docBase="D:/MyEclipse 6.0/workspace/netshop/WebRoot"

        debug="5" reloadable="true" crossContext="true">

 

    <!-- maxActive: Maximum number of dB connections in pool. Make sure you

         configure your mysqld max_connections large enough to handle

         all of your db connections. Set to 0 for no limit.

         -->

 

    <!-- maxIdle: Maximum number of idle dB connections to retain in pool.

         Set to -1 for no limit.  See also the DBCP documentation on this

         and the minEvictableIdleTimeMillis configuration parameter.

         -->

 

    <!-- maxWait: Maximum time to wait for a dB connection to become available

         in ms, in this example 10 seconds. An Exception is thrown if

         this timeout is exceeded.  Set to -1 to wait indefinitely.

         -->

 

    <!-- username and password: MySQL dB username and password for dB connections  -->

 

    <!-- driverClassName: Class name for the old mm.mysql JDBC driver is

         org.gjt.mm.mysql.Driver - we recommend using Connector/J though.

         Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.

         -->

   

    <!-- url: The JDBC connection url for connecting to your MySQL dB.

         The autoReconnect=true argument to the url makes sure that the

         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the

         connection.  mysqld by default closes idle connections after 8 hours.

         -->

 

  <Resource name="jdbc/javatest" auth="Container" type="javax.sql.DataSource"

               maxActive="100" maxIdle="30" maxWait="10000"

               username="root" password="passwd" driverClassName="com.mysql.jdbc.Driver"

               url="jdbc:mysql://localhost/javatest?autoReconnect=true"/>

 

</Context>

 

 

下面把整个server.xml代码都给一起copy过来了,方便参照,当然也可以忽略这一部分

<?xml version='1.0' encoding='utf-8'?>

<!--

  Licensed to the Apache Software Foundation (ASF) under one or more

  contributor license agreements.  See the NOTICE file distributed with

  this work for additional information regarding copyright ownership.

  The ASF licenses this file to You under the Apache License, Version 2.0

  (the "License"); you may not use this file except in compliance with

  the License.  You may obtain a copy of the License at

 

      http://www.apache.org/licenses/LICENSE-2.0

 

  Unless required by applicable law or agreed to in writing, software

  distributed under the License is distributed on an "AS IS" BASIS,

  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  See the License for the specific language governing permissions and

  limitations under the License.

-->

<!-- Note:  A "Server" is not itself a "Container", so you may not

     define subcomponents such as "Valves" at this level.

     Documentation at /docs/config/server.html

 -->

<Server port="8005" shutdown="SHUTDOWN">

 

  <!--APR library loader. Documentation at /docs/apr.html -->

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->

  <Listener className="org.apache.catalina.core.JasperListener" />

  <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->

  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />

  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

 

  <!-- Global JNDI resources

       Documentation at /docs/jndi-resources-howto.html

  -->

  <GlobalNamingResources>

    <!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users

    -->

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

 

  <!-- A "Service" is a collection of one or more "Connectors" that share

       a single "Container" Note:  A "Service" is not itself a "Container",

       so you may not define subcomponents such as "Valves" at this level.

       Documentation at /docs/config/service.html

   -->

  <Service name="Catalina">

 

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->

    <!--

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="150" minSpareThreads="4"/>

    -->

   

   

    <!-- A "Connector" represents an endpoint by which requests are received

         and responses are returned. Documentation at :

         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)

         Java AJP  Connector: /docs/config/ajp.html

         APR (HTTP/AJP) Connector: /docs/apr.html

         Define a non-SSL HTTP/1.1 Connector on port 8080

    -->

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

    <!-- A "Connector" using the shared thread pool-->

    <!--

    <Connector executor="tomcatThreadPool"

               port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

    -->          

    <!-- Define a SSL HTTP/1.1 Connector on port 8443

         This connector uses the JSSE configuration, when using APR, the

         connector should be using the OpenSSL style configuration

         described in the APR documentation -->

    <!--

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

    -->

 

    <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

 

    <!-- An Engine represents the entry point (within Catalina) that processes

         every request.  The Engine implementation for Tomcat stand alone

         analyzes the HTTP headers included with the request, and passes them

         on to the appropriate Host (virtual host).

         Documentation at /docs/config/engine.html -->

 

    <!-- You should set jvmRoute to support load-balancing via AJP ie :

    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">        

    -->

    <Engine name="Catalina" defaultHost="localhost">

 

      <!--For clustering, please take a look at documentation at:

          /docs/cluster-howto.html  (simple how to)

          /docs/config/cluster.html (reference documentation) -->

      <!--

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

      -->       

 

      <!-- The request dumper valve dumps useful debugging information about

           the request and response data received and sent by Tomcat.

           Documentation at: /docs/config/valve.html -->

      <!--

      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>

      -->

 

      <!-- This Realm uses the UserDatabase configured in the global JNDI

           resources under the key "UserDatabase".  Any edits

           that are performed against this UserDatabase are immediately

           available for use by the Realm.  -->

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

             resourceName="UserDatabase"/>

 

      <!-- Define the default virtual host

           Note: XML Schema validation will not work with Xerces 2.2.

       -->

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

 

        <!-- SingleSignOn valve, share authentication between web applications

             Documentation at: /docs/config/valve.html -->

        <!--

        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

        -->

 

        <!-- Access log processes all example.

             Documentation at: /docs/config/valve.html -->

        <!--

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 

               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

        -->

 

 

  

 <Context path="/netshop" docBase="D:/MyEclipse 6.0/workspace/netshop/WebRoot"

        debug="5" reloadable="true" crossContext="true">

 

    <!-- maxActive: Maximum number of dB connections in pool. Make sure you

         configure your mysqld max_connections large enough to handle

         all of your db connections. Set to 0 for no limit.

         -->

 

    <!-- maxIdle: Maximum number of idle dB connections to retain in pool.

         Set to -1 for no limit.  See also the DBCP documentation on this

         and the minEvictableIdleTimeMillis configuration parameter.

         -->

 

    <!-- maxWait: Maximum time to wait for a dB connection to become available

         in ms, in this example 10 seconds. An Exception is thrown if

         this timeout is exceeded.  Set to -1 to wait indefinitely.

         -->

 

    <!-- username and password: MySQL dB username and password for dB connections  -->

 

    <!-- driverClassName: Class name for the old mm.mysql JDBC driver is

         org.gjt.mm.mysql.Driver - we recommend using Connector/J though.

         Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.

         -->

   

    <!-- url: The JDBC connection url for connecting to your MySQL dB.

         The autoReconnect=true argument to the url makes sure that the

         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the

         connection.  mysqld by default closes idle connections after 8 hours.

         -->

 

  <Resource name="jdbc/javatest" auth="Container" type="javax.sql.DataSource"

               maxActive="100" maxIdle="30" maxWait="10000"

               username="root" password="passwd" driverClassName="com.mysql.jdbc.Driver"

               url="jdbc:mysql://localhost/javatest?autoReconnect=true"/>

 

</Context>

 

 

      </Host>

    </Engine>

  </Service>

</Server>

 

 

步骤三: 下面在配置/WEB-INF/web.xml

代码如下:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

    version="2.4">

 

 

 

    <description>MySQL Test App</description>

    <resource-ref>

       <description>DB Connection</description>

       <res-ref-name>jdbc/javatest</res-ref-name>

       <res-type>javax.sql.DataSource</res-type>

       <res-auth>Container</res-auth>

    </resource-ref>

</web-app>

 

 

 

 

步骤四: 下面这一部分是测试代码,只是测试代码当然也可以用其他的代码,我用的是文档里面的。

代码如下:(testpool.jsp

<%@ page language="java" pageEncoding="gbk"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 

<sql:query var="rs" dataSource="jdbc/javatest">

select id, foo, bar from testdata

</sql:query>

 

<html>

    <head>

       <title>DB Test</title>

    </head>

    <body>

 

       <h2>

           Results

       </h2>

 

       <c:forEach var="row" items="${rs.rows}">

    Foo ${row.foo}<br />

    Bar ${row.bar}<br />

       </c:forEach>

 

    </body>

</html>

 

 

 

下面在启动服务器,然后在浏览器中输入http://localhost:8080/netshop/testpool.jsp.运行结果如下:

 

Results

Foo hello
Bar 12345

 

还有一点值得注意:

       MyEclipseconsole中,显示的服务器启动信息是红色的。而其他情况下的启动信息则是黑色的。

 

自此,所有的配置过程都以完成,接下来就可以用jndi datasource开发了。

 

通过最近的一系列的配置,有所感悟,发现会的东西真的不难,但是自己搞的时候总会出现这样或那样的问题。

写的时候总又觉得没什么好写的。自己所发生的错误似乎都不是错误,也许什么都没有做,就又可以成功了。

让人很不解。也许就是这样吧!多习惯这样也就好了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 MyEclipse 配置 Tomcat 的步骤如下: 1. 在 MyEclipse 打开“Servers”视图,如果该视图未打开,可以通过点击“Window”菜单的“Show View”选项,然后选择“Servers”打开。 2. 在“Servers”视图,右键单击空白处,选择“New”->“Server”选项。 3. 在“New Server”对话框,选择“Apache”下的“Tomcat”版本,然后单击“Next”按钮。 4. 在“Tomcat Location”界面,指定 Tomcat 的安装目录,然后单击“Finish”按钮。 5. 现在,在“Servers”视图,应该会看到已经添加了 Tomcat 服务器。 6. 可以在“Servers”视图Tomcat 服务器进行配置,如指定访问端口、配置项目路径等。 7. 在“Servers”视图,右键单击 Tomcat 服务器,然后选择“Start”启动 Tomcat 服务器。 8. 至此,配置 Tomcat 完成,可以在浏览器输入 http://localhost:8080/ 访问 Tomcat 服务器了。 ### 回答2: 在MyEclipse配置Tomcat非常简单,只需要按照以下步骤操作: 1. 首先,确保已经在电脑上安装了Tomcat服务器。如果没有,可以从Apache Tomcat官方网站上下载并安装。 2. 打开MyEclipse,在菜单栏选择“Window”(窗口),然后点击“Preferences”(首选项)。 3. 在弹出的窗口,选择“Server”(服务器)选项,然后点击“Runtime Environments”(运行时环境)。 4. 在列表点击“Add”(添加)按钮,选择“Apache Tomcat”作为服务器类型,然后点击“Next”(下一步)。 5. 在“Tomcat Home Directory”(Tomcat主目录),点击“Browse”(浏览)按钮,找到Tomcat服务器安装的路径,然后点击“OK”(确定)。 6. 点击“Finish”(完成)按钮,完成配置Tomcat服务器。 7.回到MyEclipse主界面,选择“Window”(窗口)菜单,然后选择“Show View”(显示视图),再选择“Servers”(服务器)视图。 8. 在“Servers”(服务器)视图,右键点击空白处,选择“New”(新建)> “Server”(服务器)。 9. 在弹出的对话框,选择“Tomcat”作为服务器类型,然后点击“Next”(下一步)。 10. 在“Select the server’s host name and server port”(选择服务器的主机名和端口),可以自定义服务器的主机名和端口号,然后点击“Finish”(完成)。 11. Tomcat服务器将出现在“Servers”(服务器)视图。右键点击Tomcat服务器,选择“Start”(启动)来启动服务器。 至此,您已经成功在MyEclipse配置Tomcat服务器了。您可以在MyEclipse创建Web项目,并将其部署到Tomcat服务器上运行。 ### 回答3: 要在MyEclipse配置Tomcat,按照以下步骤操作: 1. 首先,确保你已经安装了Tomcat服务器。下载并安装Tomcat,并记下Tomcat的安装路径。 2. 打开MyEclipse,点击菜单栏的"Window",然后选择"Preferences"来打开"首选项"对话框。 3. 在对话框,展开"Server"选项,然后选择"Runtime Environments"。点击"Add"按钮,在弹出的对话框选择"Apache Tomcat",然后点击"Next"。 4. 在下一个对话框,点击"Browse"按钮,找到Tomcat的安装路径,并点击"Finish"按钮完成Tomcat服务器的配置。 5. 在MyEclipse导航窗格展开"Servers"选项,然后右键点击"New",选择"Server"来创建一个新的服务器。 6. 在弹出的对话框,选择"Apache"文件夹,并从列表选择"Tomcat"。点击"Next"按钮。 7. 在"Server Locations"对话框,选择"Use Tomcat Installation",然后点击"Finish"按钮。 8. 现在,你将会在导航窗格看到已经配置Tomcat服务器。右键点击服务器,选择"Start"来启动Tomcat服务器。 9. 如果一切设置正确,你将会在控制台窗口看到Tomcat服务器的启动日志。 通过上述步骤,你已经成功在MyEclipse配置Tomcat服务器。可以利用这个服务器来部署和运行你的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值