我正在运行Tomcat6并希望从我的Servlet访问数据源。但我得到了
javax.naming.OperationNotSupportedException: can''t generate an absolute name for this namespace
at org.apache.naming.NamingContext.getNameInNamespace(NamingContext.java
:772)
我的context.xml在HomeController / META-INF / context.xml下:
acquireIncrement="5"
username="client"
password="1234"
jdbcUrl="jdbc:sqlserver://192.168.1.5:1433;databaseName=myDB;autoReconnect=true" />
我也将相同的context.xml重命名为我的webapp“HomeController”,并放在TOMCAT_HOME / conf / Catalina / localhost / HomeController.xml下。
我的web.xml看起来像这样:
Home Controller
HomeController
com.home.controller.HomeController
HomeController
/HomeController
DB Connection
jdbc/HomeController
javax.sql.DataSource
Container
在我的Servlet中我有这个:
Connection conn = null;
Context ctx = null;
java.sql.Statement stmt = null;
try {
ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env"); //
DataSource ds = (DataSource) envCtx.lookup("jdbc/EmscribeWS");
conn = ds.getConnection();
DatabaseMetaData mt = conn.getMetaData();
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
我安装了Tomcat6的新副本,并将sqljdbc4.jar放在TOMCAT_HOME / lib下。
我的HomeController / WEB-INF / lib下没有JARS。
在我的Servlet中执行“(Context)ctx.lookup(”java:comp / env“);”时失败。
任何人都知道为什么它在检索对象时失败了?