Bean.xmlファイルの正しい形式と使用法について質問があります。私のプロジェクトでは、通常、このコンテンツをbean.xmlファイルに使用しました(explizit bean宣言は使用されていません)。
<?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>
これはWildFly8および9でうまく機能します。しかし、GlassFish 4でデプロイメントの問題があります。質問: Glassfish 4、CDIの簡単な例はWELD-001408で失敗します。依存関係が満たされていません 別の形式について書きました。
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
使用される異なる名前空間があります。そして、GlassFish4はそれを気にしているようです。
JEE7に使用される空のbean.xmlファイルの正しい形式は何ですか?
正しい空のbeans.xml
は完全に空ファイル、本当に;-)
ただし、コンテンツを追加する場合は、ほとんどのXMLデプロイメント記述子の名前空間がJava EE 7)で更新されていることに注意してください。この 投稿の説明 詳細。 bean-discovery-mode
が追加されました。
ところで:私が今使っているサンプルbeans.xml
は次のようになります:
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.2" bean-discovery-mode="annotated">
<!-- some content -->
</beans>
version="1.2"
属性の使用法に気付くかもしれません-それを1.1
に自由に設定できます。これは、プロジェクトがCDI 1.2を使用していることを読者に思い出させるものです(実際には、CDI 1.1仕様のメンテナンスリリースです)。