java - 为 java jersey 应用程序创建 docker 容器
问题描述
我已经被困在这个问题上一段时间了,在任何地方都找不到解决方案。我正在使用 jersey 框架编写一个 java rest 服务,maven 作为托管在 apache tomcat 上的包管理器。
该项目在本地运行良好。我想 dockerize 应用程序并且真的很挣扎。我已经启动并运行了 tomcat 容器,当我转到应用程序的根目录时,我可以看到我拥有的简单的 hello 文本。因此,当我走到http://xxx:8888/npmanager/
这一点时,我看到了我的期望。
现在,当我尝试访问任何端点时,即https://xxx:8888/npmanager/api/XXX
出现 500 错误:
使用资源和/或提供程序类检测到警告:严重:缺少字段依赖项:私有 org.glassfish.jersey.server.wadl.WadlApplicationContext org.glassfish.jersey.server.wadl.internal.WadlResource.wadlContext
码头文件:
FROM tomcat:8.5.38
ADD ./target/npmanager.war /usr/local/tomcat/webapps/
CMD chmod +x /usr/local/tomcat/bin/catalina.sh
CMD ["catalina.sh", "run"]
码头工人-compose.yml
version: '3'
services:
tomcat-dev:
build: .
environment:
TOMCAT_USERNAME: root
TOMCAT_PASSWORD: root
ports:
- "8888:8080"
mysql-dev:
image: mysql:8.0.2
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: npmanager
volumes:
- /mysql-data:/var/lib/mysql
ports:
- "3308:3306"
解决方案
推荐阅读
- python - 如何查看 2 个日期产生的收入总和比 1 个多的实例有多少?
- javascript - 更改另一个页面上的 innerhtml 在 Chrome 中不起作用(它们在同一个域中)
- c# - WCF 是建立在套接字上的吗?
- javascript - 使用嵌套的 json 数据创建一个 html 表
- kubernetes - 从 kubernetes pod 中获取环境变量并将其存储在数组中
- swift - 检查是否在特定文档中添加了新字段,例如 Firestore 中集合的 documentChanges
- json - GoLang 使用来自 kafka 的 json 消息
- php - 无法访问控制器 mautic 中的模型
- python - 从 np.array 中删除零行
- certificate - Hyperledger Fabric CA - 以正确的方式存储身份材料