【问题标题】:Error when deploying using CDI on Glassfish在 Glassfish 上使用 CDI 部署时出错
【发布时间】:2011-02-26 13:24:51
【问题描述】:

我在 Glassfish 上玩过 CDI,但没有走得太远。 一旦我在 /WebContent/META-INF 中放入一个 empyt beans.xml,我就会收到以下错误:

无法部署 CDI_Example 模块的部署错误:CDI_Example:加载应用程序时出现异常:org.glassfish.deployment.common.DeploymentException:WELD-001201 加载 beans.xml URL 时出错:null

Weld 文档说该文件可能是空的,但看起来 Glassfish v3 需要文件中的任何内容。

有人有想法吗?

谢谢

【问题讨论】:

  • 您可能想针对 glassfish 提出问题...java.net/jira/browse/GLASSFISH 开始。您可能需要附加示例应用程序并提供有关您的环境的更多详细信息。
  • 请批准@Yakov Fain 的回答。我和你有同样的问题,它的答案有效。 beans.xml 应该在 WEB-INF(连同 *web.xml 的文件)而不是 META-INF
  • 您是否清理了 dist/ 和 build/ 目录并重新启动了服务器并重新编译了项目? GlassFish 经常无法识别这种类型的 xml 更改,需要重新启动。

标签: glassfish cdi


【解决方案1】:

“空”并不意味着 beans.xml 应该是完全空的。 这意味着您不必指定任何内容,但它至少应包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
</beans>

【讨论】:

  • 嗯,应该提到我的 beans.xml 格式正确,但不包含其他元素。无论如何,我仍然停留在这个问题上,找不到解决方案。谁能提供一个可行的例子?
【解决方案2】:

beans.xml 可以完全为空。但是如果你正在创建一个 Web 应用程序,它必须不是位于 META-INF 中,而是位于 WEB-INF 目录中。

【讨论】:

  • "beans.xml 可以完全为空。"按照 ifischer 的指示添加 beans 元素解决了我的问题。这当然意味着 beans.xml 不能为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 2018-09-14
  • 2013-02-03
  • 1970-01-01
相关资源
最近更新 更多