При попытке развернуть приложение mavenized entreprise (включая проекты war и jar) в Glassfish 4.0 (с использованием netbeans 7.3.1), у меня возникла аналогичная проблема, как в этот вопрос, в котором говорится, что jar недействителен, так как он не содержит ejb (что неверно, потому что мой jar приложения содержит 4 класса сущностей с соответствующими сессионными bean-компонентами и локальные интерфейсы). Поскольку решение в этом посте заключалось в том, чтобы добавить 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)
У меня нет ни одного из этих значений в моем проекте (на самом деле я не знаю, что такое перехватчик, ни другие требуемые значения, указанные в исключении) (я не знаю, почему 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>
и _2_ в последних двух объявлениях. Попробуйте следующее: