Помимо EAR и EJB, что я получаю от Java сервер приложений EE, что я не вхожу в контейнер сервлета как Tomcat?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

23
задан Arjan Tijms 18 May 2012 в 21:29
поделиться

4 ответа

Если Вы не хотите EJB надлежащий, Вам не нужен полный сервер стека J2EE (коммерческий или не).

у Вас может быть большинство функций J2EE (таких как JTA, JPA, JMS, JSF) без полного сервера стека J2EE. Единственное преимущество полного стека j2ee - то, что контейнер будет управлять всеми они от Вашего имени декларативно. С появлением EJB3, если Вам нужен контейнер, справился с сервисами, с помощью каждого - хорошая вещь.

у Вас не может также быть стоимости полный сервер стека, такой как Glasfish, Geronimo или JBoss.

можно также работать, встроенный j2ee контейнер справился с сервисами со встроенным Glasfish, например, прямо в Tomcat.

можно хотеть контейнер EJB, если Вы хотите использовать бобы сессии, бобы сообщения, бобы таймера, приятно управляемые для Вас, даже с кластеризацией и заменить.

я предложил бы управлению рассмотреть обновления на основе потребности функции. Некоторые из этих контейнеров EJB могли бы просто хорошо использовать встроенный Tomcat в качестве их веб-сервера поэтому, что дает!

Некоторые менеджеры точно так же, как для оплаты за вещи. Попросите, чтобы они рассмотрели городское пожертвование жилья или просто пошли для BEA.

8
ответ дан Florin 29 November 2019 в 00:53
поделиться

Если Вас просят переместиться в коммерческий сервер J2EE, причины могут не иметь никакого отношения к стеку J2EE, но с нетехническими соображениями.

Одной вещью, которую Вы действительно получаете с коммерческим J2EE, предлагающим это, которое Вы не получаете с Tomcat, является техническая поддержка.

Это не может быть соображением для Вас, в зависимости от уровней обслуживания, которые Ваши веб-приложения, как предполагается, встречают. Ваши приложения могут снизиться, в то время как Вы пытаетесь выяснить проблему с Tomcat, или это будет основной проблемой?

3
ответ дан Michael Sharek 29 November 2019 в 00:53
поделиться

Стоимость является не обязательно оборотной стороной как там несколько свободных серверов J2EE, например, JBoss и Glassfish.

Ваш вопрос предполагает, что (J2EE = Сервлет + EJB + EAR) и поэтому, нет никакого смысла в использовании чего-то большего чем контейнера Сервлета, если Вы не используете EJB или EAR. Это - просто не случай, J2EE включает намного больше, чем это. Примеры включают:

  • JTA - транзакция API
  • JPA Java - персистентность API
  • JMS Java - спецификация
  • обмена сообщениями Java JSF - технология для построения пользовательских интерфейсов из компонентов

С наилучшими пожеланиями, Donal

2
ответ дан Dónal 29 November 2019 в 00:53
поделиться

По правде говоря, с обширным массивом пакетов и доступных библиотек, существует мало контейнер EJB, обеспечивает, что не может быть добавлен к современному контейнеру сервлета (Tomcat крыла). Так, если Вы когда-нибудь хотели какую-либо из тех функций, можно получить их "меню крыла" так сказать со стоимостью, являющейся процессом интеграции той функции в к приложению.

, Если Вы не "пропускаете" ни одной из этих функций теперь, затем с практической точки зрения, Вам, вероятно, не нужны они.

, Который все сказали, современные контейнеры EJB действительно хороши, и идут со всеми теми предварительно интегрированными сервисами, делая их, несколько, легче использовать должен Вы когда-либо хотеть их. Иногда наличия функции, соседней и удобной, достаточно, чтобы заставить кого-то исследовать его для его потенциала в их приложении, по сравнению с наблюдением процесса интеграции функции как препятствие к принятию.

С качеством свободных контейнеров EJB, действительно трудно вообразить, как покупка той может быть вообще полезной, особенно учитывая это у Вас нет реального спроса на один в данный момент.

Однако я действительно поощряю Вас на самом деле добираться один и игра вокруг с ним и исследовать платформу. Glassfish очень легок начать с и очень хороший, и должен легко взять Ваши ВОЙНЫ, как (или с очень незначительными тонкими настройками).

, Как правило, когда это прибывает между рабочим Tomcat по сравнению с контейнером EJB, вопрос действительно, почему бы НЕ использовать тот? Говоря специально для Glassfish, я нахожу легче использовать, чем Tomcat, и Это - главная разница, то, что это может иметь умеренно больший объем потребляемой памяти (особенно для небольшого приложения), чем Tomcat, но на крупном приложении Вы даже не заметите это. Для меня хит памяти не является грандиозным предприятием для других, это может быть проблема.

И это дает мне единственный источник всей этой хорошей функциональности, не имея необходимость проверять сеть для сторонней опции.

2
ответ дан Will Hartung 29 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: