JNDI 没有绑定名称

问题描述

我正在尝试使用 Jetty 和 MariaDB 部署一个 war 文件,但我被要求使用 docker-compose 文件

这是我的docker-compose.yml

version: '3'

services:
    MariaDB:
        image: mariadb
        restart: always
        environment: 
            MysqL_ROOT_PASSWORD: root
            MysqL_USER: user
            MysqL_PASSWORD: user
            MysqL_DATABASE: devopsdblocal

    jetty:
        image: jetty
        depends_on: 
            - "MariaDB"
        ports:
            - "8080:8080"
        volumes:
            - ./target/deploy.war:/var/lib/jetty/webapps/root.war

这是我的web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <resource-ref>
        <res-ref-name>jdbc/devopsdblocal</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

我的jetty-env.xml

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
 
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <New id="project-db" class="org.eclipse.jetty.plus.jndi.Resource">
        <Arg>jdbc/devopsdblocal</Arg>
        <Arg>
            <New class="com.MysqL.jdbc.jdbc2.optional.MysqLConnectionPoolDataSource">
                <Set name="url">jdbc:MysqL://localhost:3306/</Set>
                <Set name="username">user</Set>
                <Set name="password">user</Set>
            </New>
        </Arg>
    </New>
</Configure>

这是我收到的源代码,无法更改:

Context initContext = new InitialContext();
            Context envContext = (Context) initContext.lookup("java:comp/env");
            dataSource = (DataSource) envContext.lookup("jdbc/devopsdblocal");

当我尝试运行 docker-compose up 时,出现以下错误

java.lang.IllegalStateException:没有绑定名称 jdbc/devopsdblocal

我一整天都被困在这个问题上,一直找不到任何合适的答案.. 任何帮助表示赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)