1

(netbeans 7.3.1 を使用して) Glassfish 4.0 で mavenized エンタープライズ アプリケーション (war プロジェクトと jar プロジェクトの両方を含む) をデプロイしようとすると、この質問と同様の問題が発生し、jar には ejb が含まれていないため無効であるという問題が発生しました (私のアプリケーション jar には、対応するセッション Bean とローカル インターフェイスを持つ 4 つのエンティティ クラスが含まれているため、正しくありません)。その投稿の解決策は ejb-jar.xml を追加することだったので、次のように記述された展開記述子を追加して同じことを行いました。

<?xml version="1.0" encoding="UTF-8"?>
   <ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee" 
         version = "3.1"
         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/ejb-jar_3_1.xsd">


    <enterprise-beans>

        <session>
            <ejb-name>EnginDao</ejb-name>
            <ejb-class>com.crystaleez.dao.EnginDao</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>

        <session>
            <ejb-name>AdresseDao</ejb-name>
            <ejb-class>com.crystaleez.dao.AdresseDao</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>

        <session>
            <ejb-name>AutomobilisteDao</ejb-name>
            <ejb-class>com.crystaleez.dao.AutomobilisteDao</ejb-class>
            <transaction-type>Container</transaction-type>
            <session-type>Stateless</session-type>
        </session>

        <session>
            <ejb-name>GaragisteDao</ejb-name>
            <ejb-class>com.crystaleez.dao.GaragisteDao</ejb-class>
            <transaction-type>Container</transaction-type>
            <session-type>Stateless</session-type>
        </session>


    </enterprise-beans>


</ejb-jar>

したがって、アプリケーションのデプロイ時にこの例外が発生し、ejb-jar.xml に無効なコンテンツがあり、値 '{" http://java.sun.com/xml/ns/javaeeの 1 つであることを示す次の例外が発生しました。 ":interceptors, " http://java.sun.com/xml/ns/javaee ":relationships, " http://java.sun.com/xml/ns/javaee ":assembly-descriptor, " http:/ /java.sun.com/xml/ns/javaee ":ejb-client-jar}' が期待されます (私にとってはフランス語です。netbeans での glassfish ロギングを変更する方法が見つかりませんでした)。

Grave: Exception lors du déploiement de l'application [tunmecanique-ear-1.0-SNAPSHOT] : org.xml.sax.SAXParseException; 行番号: 16; 列番号: 24; META-INF/ejb-jar.xml およびアーカイブ [tunmecanique-ejb-1.0-SNAPSHOT_jar] の記述ファイル。cvc-complex-type.2.4.a : 「エンタープライズ Bean」の一部である有効でない情報が含まれています。L'une des valeurs '{" http://java.sun.com/xml/ns/javaee ":interceptors, " http://java.sun.com/xml/ns/javaee ":relationships, " http: //java.sun.com/xml/ns/javaee ":assembly-descriptor, " http://java.sun.com/xml/ns/javaee":ejb-client-jar}' est attendue.org.xml.sax.SAXParseException; lineNumber: 16; columnNumber: 24; Fichier de descripteur de déploiement META-INF/ejb-jar.xml dans l'archive [tunmecanique-ejb -1.0-SNAPSHOT_jar]. cvc-complex-type.2.4.a : Contenu non valide trouvé à partir de l'élément 'enterprise-beans'. L'une des valeurs '{" http://java.sun.com/ xml/ns/javaee ":interceptors, " http://java.sun.com/xml/ns/javaee ":relationships, " http://java.sun.com/xml/ns/javaee ":assembly-descriptor 、" http://java.sun.com/xml/ns/javaee「:ejb-client-jar}」の出席者。 java:245) com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:665) com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:391) com.sun .enterprise.deployment.archivist.Archivist.open(Archivist.java:271) at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:280) at com.sun.enterprise.deployment.archivist.ApplicationArchivist com.sun.enterprise.deployment.archivist.ApplicationArchivist の .readModulesDescriptors(ApplicationArchivist.java:611)。openWith(ApplicationArchivist.java:229) at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:232) at org.glassfish.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:188) org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:222) で org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:96) で com.sun.enterprise.v3 .server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:878) com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:818) com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle) .java:374) の com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) の org.glassfish.deployment.admin で。DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run( CommandRunnerImpl.java:523) の java.security.AccessController.doPrivileged(Native Method) の javax.security.auth.Subject.doAs(Subject.java:356) の com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute (CommandRunnerImpl.java:522)実行 (CommandRunnerImpl.java:522)実行 (CommandRunnerImpl.java:522)

私は自分のプロジェクトにこれらの値のいずれも持っていません(実際、何がインターセプターであるか、例外によって他の必須値が言われているかわかりません)(ejb-jar.xmlが必須である理由と、なぜあるのかわかりません自動的に生成する方法はありません)プロジェクトを正常に展開する必要があります。

手伝ってくれてありがとう !

4

1 に答える 1