Ну, я думаю, что дал вам довольно хорошее объяснение в своем предыдущем ответе :
EJB не имеют эквивалента WEB-INF / lib и при упаковкебиблиотеки внутри EJB-JAR могут работать с некоторым сервером приложений, это не является частью спецификации JAR 1 и не соответствует стандартам Sun относительно J2EE-упаковки .
Я не знаю, что добавить, если вы хотите писать переносимые приложения, вы должны следовать правилам.Являются ли они из-за технических ограничений (см. Сноску), это не вопрос, правила есть правила.
Альтернативой может быть распаковка библиотеки в EJB-JAR, и это невероятно некрасиво (копирование вашей библиотеки в путь к классам сервера приложений - это IMO, а не альтернатива для переносимых приложений).сказал, что если вы используете Java EE 6, теперь вы можете использовать WAR вместо EAR .
1 Как объяснено в thisthread , спецификация jar не поддерживает файлы jar в файлах jar (технически поддержка URL в Java распространяется только на один уровень глубины: например, jar: url / to / file! path / in / jar разрешена, но jar:jar: url / to / file! path / in / jar! path / in / jar нет), поэтому, хотя вы можете копировать файлы jar внутри вашего ejb jar, с него ничего не будет загружено.