问题描述
我正在尝试使用 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 (将#修改为@)