Выбор встроил EJB 3.x контейнер для выполнения приложения Java EE 5 на Tomcat

Лучше всего, если сначала просто взять строку, а затем попытаться получить целое число. Таким образом, ваш код не потерпит неудачу так быстро. Вы можете решить свой пример следующим образом:

# you need to initialise the variables in order to avoid an error when 
# summing them up
number_of_dogs = 0
number_of_cats = 0
number_of_rabbits = 0

while True:
    # Ask for the desired mode after each 'secondary entry'
    a = input(
    "Select A Question:*' \n\
    Dog Question: '1' \n\
    Cat Question: '2' \n\
    Rabbit Question: '3' \n\
    Calculate Total Animals: '4' \n\
    Enter one of the above options 1-4:")

    if a is '1':
        # get the user input as a string
        dogs = input("How many doggos do you have?: ")
        try:
            # try to convert it (you can also combine this with the prior 
            # input(...) but then you're more likely to catch exceptions
            # you don't want to catch)
            number_of_dogs = int(dogs)
        except:
            print("please just enter a digit")
    elif a is '2':
        cats = input("How many cats do you have?: ")
        try:
            number_of_cats = int(cats)
        except:
            print("please just enter a digit")
    elif a is '3':
        rabits = input("How many rabbits do you have?: ")
        try:
            number_of_rabbits = int(rabits)
        except:
            print("please just enter a digit")
    elif a is '4':
        print("You have " 
            + str(number_of_dogs
                + number_of_cats
                + number_of_rabbits)
            + " animals")
        break

    else:
            print("Please enter a valid value e.g. '1', '2', '3'"
            "To add up your animals '4'")

И еще небольшой совет: попробуйте использовать более объяснительные имена переменных, это сделает код более читабельным. И вы также можете использовать более логичные варианты выбора в первом операторе ввода: «Собаки», «Кошки» и т. Д., А не 1, 2, 3 ...

5
задан Arjan Tijms 24 March 2013 в 09:53
поделиться

1 ответ

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

Я пошел с Apache OpenEJB, так как он предлагает богатый набор функций, частично поддерживает EJB 3.1 и кажется как самое активное и хорошо окружил предложение.

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

Встроенный JBoss

  • Лицензия: LGPL
  • Java: JDK 5.0
  • Интеграция Tomcat: Да, модификация к server.xml
  • Версии Tomcat: 5.0 и выше (?)
  • Развертывание на Tomcat: Встроенная война
  • Список функций: (локальный) JNDI, JBoss TS, Обмен сообщениями JBoss, JCA, JNDI, EJB, JPA, локальный пул источника данных/соединения TX, безопасность EJB конфигурация JNDI: реализация Tomcat переопределений JNDI путем разделения на уровни себя сверх инстанцирования Tomcat JNDI; Tomcat JNDI только для чтения
  • Типы развертывания: JAR только
  • Поддержка управления: Нет
  • Поддержка: ограниченный, основывался на главном Микроконтейнере JBoss, который является ядром JBoss 5.0, поддерживаемой опции для Шва на Tomcat
  • Поставщик JMS: те же конфигурационные файлы как JBoss 5.x. JMS настроен в hsqldb-persistence-service.xml, и это может быть скорректировано для работы с другими базами данных
  • Пул соединения XA: нет
  • EJB Timer Services: нет
  • *Поставщики решения для хранения данных: *Hibernate
  • Ограничения: никакой удаленный JMS; локальные интерфейсы только; локально-единственная реализация JBoss JNDI
  • Документация: ограниченный
  • EJB 3.1: нет

Apache OpenEJB 3.1

  • Лицензия: лицензия Apache
  • *Java: *JDK 5.0 или 6.0
  • Tomcat integration:Yes, модификации для запущения сценария оболочки
  • *Версии Tomcat: *Tomcat 6.x или 5.5
  • *Развертывание на Tomcat: файл *war
  • *Список функций: *EJB 3.0 и 3.1, JTA, JAX-WS, JMS, Коннекторы J2EE, JPA, JNDI. OpenEJB использует несколько других платформ с открытым исходным кодом, таких как OpenJPA для обеспечения JPA и персистентности CMP, ActiveMQ для JMS/MDB и Apache CXF для функций JAX-WS.
  • *конфигурация JNDI: *flexible JNDI именование схемы
  • *Типы развертывания: *Collapsed EAR (война), JAR
  • Поддержка управления: ActiveMQ JMX mbeans
  • *Поддержка: поддержка *Community, списки рассылки и форумы, контейнер EJB для Apache Geronimo
  • *Поставщик JMS: *ActiveMQ
  • *пул соединения XA: *Yes
  • *сервисы таймера EJB: *Yes
  • *Поставщики решения для хранения данных: *OpenJPA, быть в спящем режиме
  • *Ограничения: *OpenEJB использует OpenJPA для обеспечения JPA и персистентности CMP, и OpenJPA в настоящее время требует, чтобы JavaAgent функционировал правильно.
  • *Документация: *limited, но лучше, чем другие
  • *EJB 3.1: *partial

EasyBeans

  • *Лицензия: *LGPL
  • *Java: *JDK 5.0 или 6.0
  • Интеграция Tomcat: Да
  • *Версии Tomcat: *Tomcat 6.x или 5.5
  • *Развертывание на Tomcat: файл *war
  • *Список функций: *EJB 3.0, JAX-WS, поддержка OSGi
  • Конфигурация JNDI:?
  • *Типы развертывания: *JAR
  • Поддержка управления:?
  • *Поддержка: поддержка *Community и профессиональная поддержка, список рассылки, JIRA, контейнер EJB для сервера приложений JOnAS
  • Поставщик JMS:?
  • Пул соединения XA:?
  • *сервисы таймера EJB: *Yes
  • *Поставщики решения для хранения данных: *OpenJPA, будьте в спящем режиме, TopLink, EclipseLink
  • Ограничения:
  • *Документация: *limited
  • EJB 3.1: нет
6
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

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