将 httpServlet 部署到 weblogic 12 服务器时查找数据源名称时出错
Error when looking up data source name when deploying httpServlet to weblogic 12 server
我正在尝试将 ear 文件部署到 Weblogic 12 服务器。 ear 文件包含一个 HttpServlet。在部署期间,HttpServlet 正在尝试初始化并因以下错误而失败:
Target state: deploy failed on Cluster
javax.naming.NameNotFoundException: While trying to lookup
'jdbc.' didn't find subcontext 'jdbc'. Resolved
'' at
weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)
我在weblogic服务器上测试数据源连接成功。
数据源是在正在访问的属性文件中定义的,因为数据源名称是正确的。网络服务器 URL 也是正确的。
这是 init() 方法:
public void init(ServletConfig config) throws ServletException
{
super.init(config);
Context jndiContext = null;
Hashtable ht = new Hashtable();
try
{
PropertyManager.getInstance(PROPS_FILE);
PropertyManager.getInstance();
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, PropertyManager.getProperty("WL_WEBSERVER_URL"));
jndiContext = new InitialContext(ht);
ds = (javax.sql.DataSource) jndiContext.lookup(PropertyManager.getProperty("SEC_DATASOURCE"));
}
}
我不明白为什么它不识别jdbc
的子上下文。
我尝试删除 jdbc
。但是错误是没有 jdbc
.
的 NameNotFoundException
更新
我尝试将数据源名称更改为 java:jdbc/scantDS
。我收到了不同的 NameNotFoundException:
". javax.naming.NameNotFoundException: While
trying to look up /jdbc/scantDS in /app/webapp/Load/421643657.;
remaining name '/jdbc/scantDS' at
weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)
问题是我尝试使用错误的端口号进行部署。我使用的是控制台应用程序正在使用的端口号,我需要一个具有 JNDI 的特定端口。
我正在尝试将 ear 文件部署到 Weblogic 12 服务器。 ear 文件包含一个 HttpServlet。在部署期间,HttpServlet 正在尝试初始化并因以下错误而失败:
Target state: deploy failed on Cluster javax.naming.NameNotFoundException: While trying to lookup 'jdbc.' didn't find subcontext 'jdbc'. Resolved '' at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)
我在weblogic服务器上测试数据源连接成功。
数据源是在正在访问的属性文件中定义的,因为数据源名称是正确的。网络服务器 URL 也是正确的。
这是 init() 方法:
public void init(ServletConfig config) throws ServletException
{
super.init(config);
Context jndiContext = null;
Hashtable ht = new Hashtable();
try
{
PropertyManager.getInstance(PROPS_FILE);
PropertyManager.getInstance();
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, PropertyManager.getProperty("WL_WEBSERVER_URL"));
jndiContext = new InitialContext(ht);
ds = (javax.sql.DataSource) jndiContext.lookup(PropertyManager.getProperty("SEC_DATASOURCE"));
}
}
我不明白为什么它不识别jdbc
的子上下文。
我尝试删除 jdbc
。但是错误是没有 jdbc
.
更新
我尝试将数据源名称更改为 java:jdbc/scantDS
。我收到了不同的 NameNotFoundException:
". javax.naming.NameNotFoundException: While trying to look up /jdbc/scantDS in /app/webapp/Load/421643657.; remaining name '/jdbc/scantDS' at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)
问题是我尝试使用错误的端口号进行部署。我使用的是控制台应用程序正在使用的端口号,我需要一个具有 JNDI 的特定端口。