Средства тестирования и публикации (сервер). Информация о выпуске

© Copyright International Business Machines Corporation 2006. Все права защищены. Ограниченные права пользователей государственных учреждений США - Использование, копирование или обнародование регламентируется Контрактом GSA ADP с IBM® Corp.

Информация о выпуске

1.0 Ограничения
   1.1 Опция "Свернуть файлы приложений, скопированные на сервер", поддерживается в WebSphere Application Server начиная с версии 6.0.2.5
   1.2 Удаление модуля EJB, общего для нескольких проектов EAR
   1.3 Запуск многонитевых приложений-клиентов WebSphere
2.0 Известные неполадки и обходные пути
   2.1 Не работает горячая замена методов при продолжении отладки
   2.2 Не работает кнопка Удалить в окне Управление общими серверами WebSphere.
   2.3 Мастер создания сервера получает неверную информацию о портах
   2.4 Создание профайлов WebSphere Application Server в 64-разрядной системе
   2.5 После потери связи долго устанавливается соединение RMI
   2.6 Сервер не включает изменения, сделанные на странице Развертывание редактора файла описания приложения
   2.7 Ошибка java.lang.NoClassDefFoundError при добавлении служебного файла JAR в Web-библиотеки
   2.8 Не удается установить защищенное соединение SOAP между WebSphere Application Server V6.0 и V6.1
   2.9 Мастер создания сервера работает медленнее, если удаленный сервер остановлен
   2.10 Не удается опубликовать приложение EAR с расширением файла .war в каталоге EarContent
   2.11 Не вступают в силу изменения в каталогах развертывания и публикации для удаленного WebSphere Application Server V5.1
   2.12 Публикация больших приложений выполняется медленнее, чем в предыдущей версии
   2.13 Переключение типа соединения сервера для защищенного WebSphere Application Server v6.1
   2.14 Ошибка TargetInvocationException при работе мастера создания таблиц и источника данных
   2.15 При остановке сервера в панели Серверы сервер может быть остановлен не полностью
   2.16 Изменения JAR EJB не вступают в силу после запуска EJB посредством универсального клиента тестирования (UTC)

1.0 Ограничения

1.1 Опция "Свернуть файлы приложений, скопированные на сервер", поддерживается в WebSphere Application Server начиная с версии 6.0.2.5

Опция Свернуть файлы приложений, скопированные на сервер поддерживается в WebSphere® Application Server начиная с версии 6.0.2.5.   В редакторе серверов  WebSphere Application Server V6.0 предусмотрена опция, которая игнорируется для серверов версии ниже чем 6.0.2.5. 

1.2 Удаление модуля EJB, общего для нескольких проектов EAR

Если с модулем  EJB  работает совместно несколько проектов EAR на   WebSphere Application Server, и один из проектов EAR удаляется с сервера, то прочие проекты EAR  необходимо перезапустить, чтобы они получили доступ к ресурсам, такими как EJB,  в проекте EJB. 

Если этого не сделать, то могут возникнуть ошибки,  подобные указанным ниже. Причина ошибок состоит в том,  что имя JNDI из проекта EJB удаляется с сервера при удалении EAR.

 

Вот пример сообщения об ошибке:

00000028 SystemOut     O javax.naming.NameNotFoundException: контекст: myCell/nodes/myNode/servers/server1, имя: ejb/ejbs/Session20Home: не найден первый компонент в имени Session20Home. [Корневая исключительная ситуация org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
    в com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
    в com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
    в com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
    в com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
    в com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
    в com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
    в javax.naming.InitialContext.lookup(InitialContext.java:363)
    в com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
    в com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
    в com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
    в ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
    в ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
    в ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)
 

1.3 Запуск многонитевых приложений-клиентов WebSphere

Сложность и многоплановость взаимодействия между средами выполнения Eclipse и WebSphere приводит к тому, что для запуска многонитевых приложений-клиентов WebSphere из окна конфигурации запуска приложения-клиента  требуются дополнительные действия. Окно конфигурации запуска приложения-клиента открывается в проекции J2EE, если выбрать в панели инструментов Выполнить > Выполнить... .   Если клиент многонитевый или применяет среды, использующие другие нити, например, Swing, то необходимо must выполнить следующие действия:

  1. В окне конфигурация запуска приложения-клиента перейдите на вкладку Аргументы.   В поле  Аргументы VM введите параметр:
    -Dosgi.noShutdown=true
  2. Убедитесь, что приложение-клиент вызывает System.exit()

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

2.0 Известные неполадки и обходные пути

2.1 Не работает горячая замена методов при продолжении отладки

Рассмотрим проект, например, проект приложения-клиента, со следующими конфигурациями:

При этом может неверно работать кнопка Продолжить в панели Отладка. Например, если приложение на сервере запущено в режиме отладки, а вы пытаетесь изменить исходный код во время выполнения и затем кнопкой Продолжить возобновить отладку приложения.  Изменения методов исходного кода могут при этом не быть применены.
Для того чтобы изменения вступили в силу, нажмите кнопку Продолжить дважды. 
Примечание:  Эта неполадка не возникает, если фасет проекта для Java имеет версию 5.0.

2.2 Не работает кнопка Удалить в окне Управление общими серверами WebSphere.

Не работает кнопка Удалить в окне Управление общими серверами WebSphere.
Совет:  Для того чтобы открыть окно Управление общими серверами WebSphere, выполните следующее:

  1. В панели инструментов выберите Окно > Параметры.  Откроется окно параметров.
  2. В левой части выберите Сервер > WebSphere > WebSphere v51.
  3. Справа, рядом с полем Общие серверы WebSphere, нажмите кнопку Управление.   Откроется окно Управление общими серверами WebSphere.

При нажатии кнопки Удалить сервер показывается как удаленный.   Однако закрыть окно, снова открыть его и обновить информацию об удаленном сервере, то будет показан ранее удаленный сервер.

Для того чтобы устранить эту неполадку, можно вручную удалить запись сервера,  выполнив следующее:

  1. Откройте файл id.txt из каталога
    <каталог>/plugins/com.ibm.etools.websphere.tools*/properties
    где <каталог> - это каталог установки контроллера агентов.
  2. Удалите запись данного общего сервера.
  3. Удалите каталог развертывания WebSphere, указанный для данного общего сервера при его создании, а также все его подкаталоги. Это могут быть каталоги config, installedApps, temp и все прочие подкаталоги.
  4. В окне Управление общими серверами WebSphere укажите имя хоста и нажмите Обновить, чтобы убедиться, что общий сервер был удален.

2.3 Мастер создания сервера получает неверную информацию о портах

Если в одном профайле WebSphere Application Server 6.0 установлены дополнительные серверы, такие как IBM HTTP Server,  то на странице Параметры сервера WebSphere мастера создания сервера могут быть указаны  неверные порты RMI или SOAP. Кроме того, может быть не показан порт административной консоли.
Если мастер создания сервера не может определить фактические порты для сервера, он по умолчанию заполняет поля для портов значениями по умолчанию: 2809 для RMI и 8880 для SOAP. 
Если порты указаны неверно, могут возникать следующие неполадки:

Рекомендация:

  1. Определите порты настроенного профайла из файлов конфигурации серверов. Порты указываются в файле serverindex.xml каталога
    <каталог>\profiles\<профайл>\config\cells\<ячейка>\nodes\<узел>, где <каталог> - это каталог установки WebSphere Application Server.
    Используя файл serverindex.xml, заполните таблицу с номерами портов сервера:
    Имя порта Описание портаПорт  по умолчаниюПрисвоенный порт
    SOAP_CONNECTOR_ADDRESS SOAP 8880
    BOOTSTRAP_ADDRESS RMI 2809
    WC_adminhost Административная консоль 9060
    WC_defaulthost Транспорт HTTP 9080
  2. Для того чтобы подключиться к серверу, укажите правильный порт RMI или SOAP при создании сервера.
  3. Для того чтобы запустить административную консоль, в поле адреса браузера укажите URL с портом административной консоли:
    http://<система>:<хост-WC>/IBM/console
    Пример: http://localhost:9060/IBM/console
  4. Для того чтобы запустить приложения на сервере, выполните команду Выполнить на сервере. Когда  откроется Web-браузер, исправьте в URL порт для транспорта HTTP, заданного для сервера.
    http://<система>:<хост-WC>/<корневой-каталог>/<страница-приложения>
    Пример:   http://localhost:9080/MyApplication/index.jsp
    Примечание:  Серверы, определенные автоматически в панели Серверы, могут не отражать фактических портов на сервере. Если это имеет место, выполните уже описанные действия.

 

2.4 Создание профайлов WebSphere Application Server в 64-разрядной системе

Управление профайлами - это инструмент WebSphere Application Server, позволяющий создать профайл для каждой из сред выполнения. Запустить инструмент управления профайлами WebSphere Application Server можно из рабочей среды.   Однако инструмент управления профайлами не работает на 64-разрядном процессоре. Вместо него используйте утилиту командной строки manageprofiles для WebSphere Application Server.

2.5 После потери связи долго устанавливается соединение RMI

При работе с RMI в Windows для подключения к WebSphere Application Server v6.x могут возникать длительные паузы при подключении к серверу после сбоя сети. Это имеет место, даже если сервер расположен в локальной сети, а сбой сети был кратковременным, что часто бывает в беспроводных сетях.
Если вы уверены, что сервер запущен, не его статус в панели Серверы показан как Остановлен или Запускается, попробуйте подключиться к серверу, используя SOAP вместо RMI.   Сервер должен изменить состояние на Работает.

При работе в беспроводной сети есть опции, позволяющие установить соединение с сервером.

2.6 Сервер не включает изменения, сделанные на странице Развертывание редактора файла описания приложения

После повторной публикации приложения, перезапуска приложения, удаления и повторной установки приложения необходимо выполнить дополнительные действия, чтобы вступили в силу некоторые изменения ресурсов, определенные на странице Развертывание редактора файла описания развертывания приложения. Одно из таких изменений, которые не воспринимает сервер - это изменение базы данных источника данных, но могут быть и другие.
Для того чтобы изменения вступили в силу, выполните следующие действия:

  1. Остановите сервер.
    1. В панели Серверы щелкните правой кнопкой мыши на сервере и выберите Остановить.
    2. В панели Серверы подождите, пока состояние сервера не будет как Остановлен, и затем продолжите.  
  2. Запустите рабочую среду.
    Примечание: Если сервер не запускается, то  необходимо остановить процесс java, в котором работает сервер, средствами операционной системы.   Можно также перезапустить рабочую среду и попытаться запустить сервер еще раз.
  3. Запустите сервер.
    1. В панели Серверы щелкните правой кнопкой мыши на сервере и выберите Запустить.
    2. В панели Серверы подождите, пока выполняется повторная публикация и состояние сервера не будет как Работает, и затем продолжите.
  4. Запустите приложение на сервере, например, командой Выполнить на сервере.   После этого должны вступить в силу изменения, сделанные для сервера в редакторе файла описания приложения.  

2.7 Ошибка java.lang.NoClassDefFoundError при добавлении служебного файла JAR в Web-библиотеки

Если служебный файл JAR добавлен в Web-библиотеки для Web-проекта, и к классам файла JAR идет обращение из кода, то при попытке запуска приложения на сервере может возникать   ошибка java.lang.NoClassDefFoundError.
Для устранения неполадки добавьте служебный файл JAR в модуль EAR, затем добавьте файл JAR в зависимости модулей J2EE Web-проекта. Для этого выполните следующее:

  1. Добавьте служебный файл JAR в модуль EAR.  См. раздел Добавление служебных файлов JAR в справке по продукту.
  2. Щелкните правой кнопкой мыши на Web-проекте и выберите Свойства.  Откроется окно свойств.
  3. Выберите Зависимости модулей J2EE.  
  4. На вкладке Модули J2EE в столбце JAR/модуль включите переключатель рядом со служебным файлом JAR.

2.8 Не удается установить защищенное соединение SOAP между WebSphere Application Server V6.0 и V6.1

Если WebSphere Application Server V6.1 работает с защищенным соединением SOAP, то другое защищенное соединение SOAP с WebSphere Application Server V6.0 приведет к ошибке.   Эта же неполадка возникает, если WebSphere Application Server V6.0 работает с защищенным соединением SOAP, тогда другое защищенное соединение SOAP с WebSphere Application Server V6.1 приведет к ошибке.  Однако неполадка не возникает, если сервер определен в панели Серверы и его состояние пустое.

Для устранения неполадки используйте защищенный RMI вместо SOAP  или используйте соединение SOAP без защиты.

 

2.9 Мастер создания сервера работает медленнее, если удаленный сервер остановлен

Если удаленный сервер остановлен, то мастер создания сервера долго не завершает работу после нажатия кнопки Готово.  Рекомендуется запустить удаленный сервер перед нажатием кнопки Готово в мастере.

2.10 Не удается опубликовать приложение EAR с расширением файла .war в каталоге EarContent

Если файл с расширением .war помещен в папку EarContent проекта EAR и не определен как Web-модуль в application.xml, то публикация приложения J2EE на сервере приводит к ошибке:
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException: IWAE0034E Не удается открыть вложенный архив "abc.war" в "D:\myworkspace\PublishEAR\EarContent"

Причина ошибки состоит в том, что рабочая среда не может обработать этот файл как Web-модуль.   далее приведены возможные способы обхода неполадки:

 

2.11 Не вступают в силу изменения в каталогах развертывания и публикации для удаленного WebSphere Application Server V5.1

Если в WebSphere Application Server V5.1 или удаленном WebSphere Application Server V5.1 Express   изменить каталог развертывания и каталог публикации в редакторе приложения и затем повторно опубликовать приложение,   то приложение будет опубликовано в прежнем расположении.    Это означает, что изменения в каталогах публикации и развертывания не вступают в силу. Эта неполадка имеет место  при работе с локальной копией  или методом FTP.
Для исправления перезапустите  рабочую среду.   После этого изменения конфигурация для каталога публикации и каталога развертывания должны вступить в силу.

2.12 Публикация больших приложений выполняется медленнее, чем в предыдущей версии

Для поддержки более гибкого хранения проектов  способ  публикации приложений  был изменен.   Теперь приложения копируются перед публикацией на сервере.  Для больших приложений размером свыше  100 МБ  копирование  при публикации  занимает дополнительное время и длится дольше, чем в предыдущей версии.

Никаких способов обхода этой ситуации не существует. IBM работает над обновлением, в котором эта операция копирования будет чаще всего не нужна.

2.13 Переключение типа соединения сервера для защищенного WebSphere Application Server v6.1

Если запущен защищенный WebSphere Application Server v6.1, и в редакторе сервера тип соединения сервера изменяется на RMI или SOAP, то может  быть показано следующее сообщение об ошибке публикации после сохранения изменений в редакторе сервера:
Публикация не выполнена, так как сервер не запущен.  Запустите сервер перед выполнением публикации.
Эту ошибку можно проигнорировать.  Можно будет выполнить публикацию  после того, как состояние сервера изменится на Запущен. Для этого в панели Серверы щелкните правой кнопкой на сервере и выберите Опубликовать.

2.14 Ошибка TargetInvocationException при работе мастера создания таблиц и источника данных

При генерации источника данных с помощью мастера создания таблиц и источника данных может возникать ошибка TargetInvocationException в разделе Сведения окна Результаты создания таблицы и источника данных.
Ошибка TargetInvocationException может возникать при импорте project interchange, содержащего источники данных с одинаковыми именами JNDI.
Для устранения ошибки TargetInvocationException проверьте, есть ли в рабочей среде источник данных с таким именем JNDI.   Если он есть удалите его на странице Развертывание редактора файла описания приложения и создайте источник данных с другим именем JNDI.    Имя JNDI должно быть уникальным, так как оно используется для поиска и связи EJB и источника данных.

2.15 При остановке сервера в панели Серверы сервер может быть остановлен не полностью

При остановке сервера в панели Серверы сервер может быть остановлен не полностью.   В панели Серверы он может быть показан как Остановлен, но процесс сервера может зависнуть.   Обычно это имеет место, когда такие артефакты, как приложение или рабочая среда не освобождают ссылки на классы на сервере.   Ниже приведены возможные сценарии:

Ограничение:  Несколько соединений с базой данных Cloudscape или Derby не поддерживаются в их конфигурации. Если открыто соединение с базой данных в панели Обзор баз данных, а сервер пытается подключиться к Cloudscape или Derby посредством источника данных, то второе соединение не будет установлено. Поэтому для подключения сервера к базе данных Cloudscape или Derby требуется сначала закрыть соединение в панели Обзор баз данных.

 

Для устранения неполадки необходимо остановить процесс java, в котором работает сервер, средствами операционной системы.  Можно также перезапустить рабочую среду, чтобы освободить ссылки.   В последнем третьем сценарии можно в панели Обзор баз данных подключиться к Cloudscape или Derby и затем отсоединиться от базы данных.

2.16 Изменения JAR EJB не вступают в силу после запуска EJB посредством универсального клиента тестирования (UTC)

Возможна блокировка файла JAR при публикации ресурсов на сервере, например, EJB,  и использовании универсального клиента тестирования  для тестирования EJB. При этом изменения, сделанные в инструментарии, не вступают в силу в ходе тестирования  EJB. Когда UTC загружает файл JAR EJB,  файл  JAR остается заблокированным, пока приложение не будет удалено и заново добавлено, или пока сервер не будет перезапущен.

Рекомендуется  работать с UTC в среде разработки, где ресурсы приложения хранятся в рабочей области и не используются на сервере. Это можно настроить в мастере создания сервера или изменить позднее в редакторе сервера, выбрав опцию публикации   Запустить сервер с ресурсами из рабочей области. При этом можно будет заменять отдельные файлы в проекте EJB, не заменяя весь файл JAR EJB.

Полностью протестированное приложение можно опубликовать на сервере с опцией  Запустить сервер с ресурсами на сервере.