【问题标题】:Configuring a JTA datasource for JBoss 8 (WildFly)为 JBoss 8 (WildFly) 配置 JTA 数据源
【发布时间】:2014-11-25 10:04:51
【问题描述】:

所以,我多次阅读,如果您使用 Java EE 容器,则无需将环境参数添加到 InitialContext 即可使用 JNDI。

所以我尝试了这个:

    @Bean
    public DataSource dataSource() {
        JndiDataSourceLookup jndiDataSourceLookup = new JndiDataSourceLookup();
        return jndiDataSourceLookup.getDataSource("java:global/ExpensesDataSource");
    }

但是,像这样使用 JNDI 检索数据源会给我一个 NoInitialContextException,告诉我指定环境参数。

现在,好吧,我认为它会如此完美地工作似乎是错误的,所以我尝试像这样检索数据源:

    @Bean
    public DataSource dataSource() {
        Properties jndiProperties = new Properties();
        jndiProperties.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
        jndiProperties.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        jndiProperties.put("java.naming.factory.url.pkgs", "org.jboss.naming.org.jnp.interfaces");
        JndiDataSourceLookup jndiDataSourceLookup = new JndiDataSourceLookup();
        jndiDataSourceLookup.setJndiEnvironment(jndiProperties);
        return jndiDataSourceLookup.getDataSource("java:global/ExpensesDataSource");
    }

但是这给了我一个javax.naming.CommunicationException: Failed to connect to server localhost:1099

我也试过只使用localhost:1099localhost,它们都不起作用。

所以我的问题是:我什至需要指定这些属性,因为据我所知 JBoss 8 是一个 Java EE 容器。如果是这样,我需要在这里指定什么提供者 url?

【问题讨论】:

    标签: java jboss datasource jndi


    【解决方案1】:

    如果你使用 javax.naming.InitialContext,你不需要指定环境参数,就像你说的那样。例如:

    InitialContext ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup("java:jboss/datasources/ExampleDS");
    

    不确定 JndiDataSourceLookup 是如何工作的..

    要查找数据源,您可以使用@Resource(在 ejb 上下文中)注入它

    @Resource(name= "java:jboss/datasources/ExampleDS")
    private Datasource ds;
    

    希望对你有帮助!

    【讨论】:

    • 我以前试过这个,但是这给了我一个 javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: .... 例外。我的代码来自 Spring 配置文件
    猜你喜欢
    • 2021-06-02
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2012-03-11
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多