programing

JNDI 이름에 대해 바인딩할 항목 없음

testmans 2023. 11. 1. 22:13
반응형

JNDI 이름에 대해 바인딩할 항목 없음

Jetty와 MariaDB를 사용하여 war 파일을 배포하려고 하는데 도커 구성 파일을 사용할 것을 요청합니다.

이건도커작곡입니다.

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>

my 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");

도커 컴포지트를 실행하려고 하면 다음 오류가 발생합니다.

자바 lang잘못된 상태 예외:이름 jdbc/devopsdblocal에 대해 바인딩할 항목이 없습니다.

저는 하루 종일 이 일에 몰두하고 있으면서 마땅한 답을 찾지 못하고 있습니다.어떤 도움이든 감사히 받겠습니다.

언급URL : https://stackoverflow.com/questions/65498496/jndi-nothing-to-bind-for-name

반응형