【问题标题】:Failed to get initial context or DataSource: javax.naming.NameNotFoundException无法获取初始上下文或数据源:javax.naming.NameNotFoundException
【发布时间】:2018-03-06 06:09:59
【问题描述】:

我正在尝试创建 Web 逻辑自定义身份验证提供程序。我创建了它,并且运行良好。而当自定义身份验证初始化时,它将显示此异常。但在那之后它工作得很好。 根据我的观点,weblogic首先尝试在服务器启动时以weblogic用户身份登录。当时就发生了这个错误。下一次,它不会显示任何错误。

这是尝试以 weblogic 用户身份登录时出现的错误

userName    = weblogic
Data set name is = xxxDataSource
eeeeeeeeeeeeeeeeeeeeeee javax.naming.InitialContext@1ac745d4
Data set name is ######### = xxxDataSource
<Mar 6, 2018 6:27:47 AM CET> <Error> <Security.Authentication> <BEA-
000000> <Failed to get initial context or DataSource: 
javax.naming.NameNotFoundException: Unable to resolve' xxxDataSource'. Resolved ''; remaining name 'xxxDataSource'

这是服务器启动时尝试登录的用户

您的帮助将不胜感激。

【问题讨论】:

    标签: java weblogic12c custom-authentication


    【解决方案1】:

    如果未找到 DataSource 名称,则意味着它未在您的 server.xmlweb.xml 中声明。你应该有这样的东西:

    <Context>
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxTotal="100" maxIdle="30" maxWaitMillis="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest"/>
    
    </Context>
    

    和/或

    <web-app>
    <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>
    

    查看您的身份验证提供程序文档,了解在server.xml 和/或web.xml 中添加的内容。

    【讨论】:

    • 在 web.xml 中声明。第二次获取数据源。但在服务器启动时不采取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2018-07-10
    • 2014-09-15
    • 1970-01-01
    相关资源
    最近更新 更多