Я следил за некоторыми учебниками по EJB 3.1, и они использовали следующую зависимость для EJB-API.Maven Dependency для EJB 3.1 [jboss-ejb-api_3.1_spec]
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.1_spec</artifactId>
<version>1.0.2.Final</version>
</dependency>
Моя проблема в том, что это только для jboss или я могу использовать это на любых других серверах приложений. Если нет, почему существуют зависимости, подобные этим, которые не являются независимыми от сервера приложений, он развертывается. А также я нашел this reference для ejb 3.1 api. Поэтому, пожалуйста, уточните, что это такое и почему они есть.
Одна вещь, которую нужно уточнить, это 'javax.ejb-api' api и' jboss-ejb-api_3.1_spec' - это реализация этого? И если мы пишем приложение, которое должно быть развернуто на двух разных серверах приложений (jboss & websphere), мы можем также упомянуть только «api» в pom (в данном случае javax.ejb-api) с областью действия «предоставлено» и это заставляет сервер использовать свою собственную реализацию при запуске? –
Это api (интерфейсы), а не реализация. Сервер будет пытаться использовать свою собственную реализацию в любом случае, однако, если вы опустите предоставленную спецификацию области, 2 реализации будут находиться в пути к классам и будут случайными, какой из них будет использоваться. Более того, AFAIK спецификация javax.ejb содержит некоторые искалеченные классы без тела класса, что означает, что ваш код может просто сбой, как регулярно, так и наугад. И да, если вы упомянете только api в pom, так как сервер будет использовать свою собственную реализацию при запуске –
Спасибо за ответ, но у меня есть проблема, мы можем использовать только 'api' для компиляции кода без указания любая «реализация»? –