當試圖在glassfish 4.0中(使用netbeans 7.3.1)部署mavenized企業應用程序(包括war和jar項目)時,我遇到了與this question類似的問題, jar無效,因爲它包含零ejb(這是不正確的,因爲我的應用程序jar包含4個實體類與他們對應的會話bean和本地接口)。如該職位的解決辦法是添加ejb-jar.xml中的話,我也做了同樣加入我的deployement描述寫成如下:在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」:攔截器,「http://java.sun.com/xml/ns/javaee」:關係,「http://java.sun.com/xml/ns/javaee」:程序集描述符,「http://java.sun.com/xml/ns/javaee」:ejb-client-jar }'預計(對我來說它是法語,我沒有找到一種方法來改變netbeans中的glassfish日誌記錄)
Grave:異常應用程序 [tunmecanique-ear-1.0-SNAPSHOT]:org.xml.sax.SAXParseException; lineNumber:16; columnNumber:24;發明名稱爲 déploiementMETA-INF/ejb-jar.xml dans l'archive [tunmecanique-ejb-1.0-SNAPSHOT_jar]。 cvc-complex-type.2.4.a:Contenu non validetrouvéàpartir de l'élément'enterprise-beans'。 L'UNE DES valeurs '{ 「http://java.sun.com/xml/ns/javaee 」:攔截器, 「 http://java.sun.com/xml/ns/javaee 」:關係, 「 http://java.sun.com/xml/ns/javaee 」:裝配描述符, 「 http://java.sun.com/xml/ns/javaee」:EJB客戶端-JAR}' EST attendue。 org.xml.sax.SAXParseException; lineNumber:16; columnNumber:24; Fichier des Descripteur dedéploiementMETA-INF/ejb-jar.xml dans l'archive [tunmecanique-ejb-1.0-SNAPSHOT_jar]。 cvc-complex-type.2.4.a :Contenu non validetrouvéàpartir de l'élément'enterprise-beans'。 L'UNE DES valeurs '{ 「http://java.sun.com/xml/ns/javaee 」:攔截器, 「 http://java.sun.com/xml/ns/javaee 」:關係, 「 http://java.sun.com/xml/ns/javaee 」:組件描述符, 「 http://java.sun.com/xml/ns/javaee」:EJB-客戶罐}' EST attendue。在 com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:324) 在 com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:245) 在 融爲一體。 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.ente rprise.deployment.archivist.ApplicationArchivist.readModulesDescriptors(ApplicationArchivist.java:611) 在 com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:229) 在 com.sun.enterprise.deployment。 archivist.ApplicationFactory.openWith(ApplicationFactory.java:232) 在 org.glassfish.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:188) 在 org.glassfish.javaee.core.deployment.DolProvider。 (DolProvider.java:222) at org.glassfish.javaee.core.deployment.DolProvider。負載(DolProvider.java:96) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:878) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle。 java:818) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:374) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java:527) 在 在 com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java:523) at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject。 Java的:356)在 com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2.execute(CommandRunnerImpl.java:522)
我沒有任何這些價值觀對我的項目(其實我不t知道什麼是攔截器,也不是由異常說的其他必需的值)(我不知道爲什麼ejb-jar.xml是強制性的,爲什麼沒有辦法自動生成它)我只需要讓我的項目成功部署。
感謝您的幫助!
我做了你告訴我的,不幸的是它不是這個原因 – Bardelman