将httpServlet部署到weblogic 12服务器时,在查找数据源名称时出错

时间:2018-10-30 16:23:51

标签: java datasource jndi weblogic12c

我正在尝试将耳文件部署到Weblogic 12服务器。耳文件包含一个HttpServlet。在部署期间,HttpServlet尝试初始化,并因以下错误而失败:

  

目标状态:在群集上部署失败   javax.naming.NameNotFoundException:尝试查找时   “ jdbc”。找不到子上下文“ jdbc”。解决   '' 在   weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)

我在weblogic服务器上测试了数据源连接,并且连接成功。

由于数据源名称正确,因此正在访问的属性文件中定义了数据源。 Web服务器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:虽然   尝试在/ app / webapp / Load / 421643657中查找/ jdbc / scantDS。   其余名称“ / jdbc / scantDS”位于   weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)

1 个答案:

答案 0 :(得分:0)

问题是我试图使用错误的端口号进行部署。我正在使用控制台应用程序正在使用的端口号,我需要一个具有JNDI的特定端口。