java - Weld,Tomcat:META-INF 中缺少“beans.xml”
问题描述
我知道已经问过很多类似的问题(例如this、this等),但没有一个可以帮助我,所以我决定再次提出这个问题 - 已经挣扎了几个小时,我真的没有想法了.
我有一个 Java EE 项目,它有一个简单的 servlet,它接受来自 HTML 表单的数据,在外部服务(使用 REST 和 JAX-RS)中执行一些查询并返回结果。我现在的目标是将它部署在独立的 Tomcat 服务器上。我试图实现它的方法是导出 WAR 工件并将其复制到 Tomcat 的webapps目录。
它一直工作到使用 JAX-RS 发送 REST 请求的那一刻 - 然后我总是得到错误:
WELD-ENV-000016: Missing beans.xml file in META-INF
我根本没有使用这个文件,但是当我读到它时,它必须在那里,即使是空的......所以我试图把它放在我能想到/读到的任何位置,包括:
/web/META-INF
/web/WEB-INF
/src/main/webapp/META-INF
/src/main/webapp/WEB-INF
/src/main/resources/META-INF
/src/main/resources/WEB-INF
当我在部署后检查 Tomcat 创建的输出 .war 文件或目录时,bean.xml存在于 META-INF 和 WEB-INF 目录中。
初始化 Weld 并执行这些查询在 Intellij IDE 内的单元测试中效果很好——这里唯一的要求是将包含 WEB-INF 和 META-INF 的目录标记为“资源根”。
在我的构面配置中,我将包含 WEB-INF 和 META-INF 的目录标记为“Web 资源目录”,并且 *'Web' facet resources' 包含在我的工件中。
有任何想法吗?我是否从根本上误解了某些东西,这里的内部焊接是否需要不同的、单独的 META-INF 或其他东西?
解决方案
由于没有人回答,我至少会分享我的结论 - 最简单的方法是切换到 TomEE(如果可以接受的话)。
推荐阅读
- python - 拆分多个字符串并连接某些字符串python
- windows - 无法解析和更新批处理脚本中的变量,在 FOR-Loop 之外和之内
- html - 有没有办法以从 django 视图中作为上下文传递的一种很好的方式在 html 中显示 json 结果?
- r - 在 R 中分析多个数据集
- sql - 计算2个指定行累积数据之间的差异
- javascript - 从 onclick="getTagname(text)" 调用函数时传递一个变量
- shell - 如何在 awk 中使用的子字符串条件中给出多个值
- javascript - 运行 node 时出现此错误。对于我的 discord.js 机器人
- python - 在 Docker 容器中运行 uwsgi - 来自服务器的空回复
- python - 我正在使用 python 中的 selenium 并尝试在 chrome 中自动登录谷歌,但我遇到了问题