为什么我在tomcat5里面配置的jndi数据源老是找不到!

huke1980 2005-12-28 03:53:40
我的server.xml文件如下:
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
<Context displayName="study" docBase="F:\Downloads\Java\study" path="/study" reloadable="true" crossContext="true">
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mydb">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dibao</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
</Context>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
执行时报错:
  javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
帮忙看看吧!
...全文
214 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
常遇道 2006-01-03
  • 打赏
  • 举报
回复
配置文件还没有完整
xiangbo520 2005-12-29
  • 打赏
  • 举报
回复
你的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>Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

chowkaunsogn 2005-12-29
  • 打赏
  • 举报
回复
我是在5.5.9上配置成功的,通过后台管理功能 。
huke1980 2005-12-29
  • 打赏
  • 举报
回复
comcat是5.0.19的
humanity 2005-12-29
  • 打赏
  • 举报
回复
你把这两个放到 <GlobalNamingResources> 下面.
<Resource name="jdbc/oracle/xa/mydb" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/oracle/xa/mydb">
....

然后在
%CATALINA_HOME%/conf/%SERVICE%/%HOST%/添加一个 %CONTEXT%.xml ,
这个里面只有一个 <Context > 节点, 内容跟 server.xml 中的 Context 一样,
但是你添加一个:
<Context>
<ResourceLink name="jdbc/mydb" global="jdbc/oracle/xa/mydb" type="javax.sql.DataSource" />

<Logger className="org.apache.catalina.logger.FileLogger" prefix="MyWebApp_log." suffix=".txt" timestamp="true"/>

</Context>

这里的 <ResourceLink >是相当于资源引用了, 它就对应到了 java:comp/env ,
chowkaunsogn 2005-12-28
  • 打赏
  • 举报
回复
你的tomcat是5.几的?
huke1980 2005-12-28
  • 打赏
  • 举报
回复
怎么没人帮忙?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧