2015-02-20 6 views
0

Мы сталкиваемся с странной ситуацией с приложением websphere.Ошибка при развертывании EAR, содержащего EJB и EJBClient, в websphere

Мы разработали это приложение в Eclipse Juno с сервером websphere 8.5. Это приложение JSF 2.0. Он также имеет EJBTimer. При локальном тестировании этого приложения он отлично работает с страницами JSF, и EJBTimer также работает так, как ожидалось.

  • Когда мы построили приложение, используя наш регулярный процесс сборки - извлечения кода из ClearCase и ДИНАМИКУ муравой сборки, приложения развертывается, но жалуется на методе не найден в локального интерфейса EJB. Когда мы проверяем построенный EAR, в интерфейсе есть метод .
  • Когда мы попытались экспортировать это как Export -> EAR и развернули этот EAR на нашем сервере разработки, мы получим следующую ошибку. Rememebr, тот же код работает в локальной среде Windows. Мы также проверили версию компилятора всех проектов - web, ejb, ejbclient и - все они являются Java 1.7. Где еще нам нужно смотреть?

    [*Error] ejbModule/com/abc/appname/service/ProcessDailyFeed.java(54): Multi-catch parameters are not allowed for source level below 1.7 
    [*Error] ejbModule/com/abc/appname/scheduledBean/ScheduledBean.java(68): Multi-catch parameters are not allowed for source level below 1.7 
    

UPDATE:

Выход из ошибочного Deploy

=== wasd8100Cell:Deploy Failed === 
=== Check http://serverabc:12345/Deployment_EAR_log for detail === 

Submitted By: b3601 
    ------ Deploying Application ----------- 
    Ear File: myApp_dev_1.ear 
    App Name: myApp 
    Install Type: UPDATE 
    Target: ('srv01_cluster', '') 
    Target Http: ('https-web01', 'wasd8101')('https-web01', '')('https-web01', 'wasd8104') 
    Modified Target Http: ('https-web01', 'wasd8101')('https-web01', 'wasd8104') 
    Copy ear file from nfs to local filesystem /opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear - 1.0s 
    Virtual Host: default_host 
    (Module, URI): ('MyAppEJB', 'MyAppEJB.jar,META-INF/ejb-jar.xml')('MyAppWeb', 'MyAppWeb.war,WEB-INF/web.xml') 
Bean: OracleDatabaseAccess 
Bean: JPAReasonManager 
Bean: JpaHistoryManager 
Bean: JpaHistoryManager 
Bean: ProcessDailyFeed 
Bean: AccessExternal 
Bean: MyAppService 
Bean: ScheduledUpdateDatabase 
Bean: ScheduledBean 
Bean: StartUp 
Bean: OracleDatabaseAccess 
Bean: JPAReasonManager 
Bean: JpaHistoryManager 
Bean: ProcessDailyFeed 
Bean: AccessExternal 
Bean: MyAppService 
Bean: ScheduledUpdateDatabase 
Bean: ScheduledBean 
Bean: StartUp 
EJBDeploy = true 

Run ejbdeploy.sh : /opt/local/software/websphere/v8/bin/ejbdeploy.sh -cp /ora01/oracle/product/was8/jdbc/lib/ojdbc6.jar /opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear /opt/local/software/abcnstalledApps/tmp /opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear_ejb.ear -quiet > /opt/local/software/abcnstalledApps/tmp/myApp.out 
using JVM heap -Xms1024m -Xmx2048m 
EJB Deploy configuration directory: /opt/local/software/websphere/v8/profiles/dmgr01/ejbdeploy/configuration/ 
framework search path: /opt/local/software/websphere/v8/deploytool/itp/plugins 
build:RAD851-I20121103_1921 
[*Error] ejbModule/com/abc/productivity/service/ProcessDailyFeed.java(54): Multi-catch parameters are not allowed for source level below 1.7 
[*Error] ejbModule/com/abc/productivity/scheduledBean/ScheduledBean.java(68): Multi-catch parameters are not allowed for source level below 1.7 
[*Warning] ejbModule/com/abc/productivity/scheduledBean/ScheduledBean.java(80): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/scheduledBean/ScheduledBean.java(167): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(67): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(110): Type safety: Unchecked cast from List to List<Long> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(121): Type safety: Unchecked cast from List to List<ProgramProductivity> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(160): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(217): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(267): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(292): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(314): Type safety: Unchecked cast from List to List<String> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(348): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(372): Type safety: Unchecked cast from List to List<ProgramProductivity> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(375): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JpaHistoryManager.java(408): Type safety: Unchecked cast from List to List<ProgramProductivityHistory> 
[*Warning] ejbModule/com/abc/productivity/dao/JPAReasonManager.java(97): Type safety: Unchecked cast from List to List<String> 
[*Warning] ejbModule/com/abc/productivity/dao/JPAReasonManager.java(207): Type safety: Unchecked cast from List to List<EmergencyReason> 
Execution Halted: Compilation Errors Reported 
2 Errors, 16 Warnings, 0 Informational Messages 

Deploy EJB ear file from /opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear_ejb.ear 

*** Invoke AdminApp Install *** 2015-02-20 07:25:00 

AdminApp.install (/opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear_ejb.ear,[ -appname myApp -installed.ear.destination /opt/local/software/abcnstalledApps/myApp -MapModulesToServers [["MyAppEJB" MyAppEJB.jar,META-INF/ejb-jar.xml WebSphere:cell=wasd8100Cell,cluster=srv01_cluster]["MyAppWeb" MyAppWeb.war,WEB-INF/web.xml WebSphere:cell=wasd8100Cell,cluster=srv01_cluster+WebSphere:cell=wasd8100Cell,node=wasd8101,server=https-web01+WebSphere:cell=wasd8100Cell,node=wasd8104,server=https-web01]] -MapWebModToVH [["MyAppWeb" MyAppWeb.war,WEB-INF/web.xml default_host]] -update -usedefaultbindings -defaultbinding.ejbjndi.prefix ejb -defaultbinding.virtual.host default_host -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall off -noprocessEmbeddedConfig -nodeployejb -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink ]) 

=== deployEntApps with Exception === 2015-02-20 07:25:00 
Traceback (most recent call last): 


File "/opt/softdepot/abcinst/was8scripts/abcUtils.py", line 2556, in deployEntApps 
    installResults = AdminApp.install(installableEar,installOptions) 
com.ibm.ws.scripting.ScriptingException: com.ibm.ws.scripting.ScriptingException: WASX7115E: Cannot read input file "/opt/local/software/abcnstalledApps/tmp/myApp_dev_1.ear_ejb.ear" 

Выхода из хорошего Deploy

=== wasd8100Cell:Deploy Successful === 

Submitted By: b3601 
    ------ Deploying Application ----------- 
    Ear File: myApp_dev_31.ear 
    App Name: myApp 
    Install Type: UPDATE 
    Target: ('srv01_cluster', '') 
    Target Http: ('https-web01', 'wasd8101')('https-web01', '')('https-web01', 'wasd8104') 
    Modified Target Http: ('https-web01', 'wasd8101')('https-web01', 'wasd8104') 
    Copy ear file from nfs to local filesystem /opt/local/software/abcnstalledApps/tmp/myApp_dev_31.ear - 0.0s 
    Virtual Host: default_host 
    (Module, URI): ('MyAppEJB', 'MyAppEJB.jar,META-INF/ejb-jar.xml')('MyAppWeb', 'MyAppWeb.war,WEB-INF/web.xml') 

    Bean: OracleDatabaseAccess 
    Bean: JPAReasonManager 
    Bean: JpaHistoryManager 
    Bean: JpaHistoryManager 
    Bean: ProcessDailyFeed 
    Bean: AccessExternal 
    Bean: MyAppService 
    Bean: ScheduledUpdateDatabase 
    Bean: ScheduledBean 
    Bean: StartUp 
    Bean: OracleDatabaseAccess 
    Bean: JPAReasonManager 
    Bean: JpaHistoryManager 
    Bean: ProcessDailyFeed 
    Bean: AccessExternal 
    Bean: MyAppService 
    Bean: ScheduledUpdateDatabase 
    Bean: ScheduledBean 
    Bean: StartUp 
    EJBDeploy = true 

    Run ejbdeploy.sh : /opt/local/software/websphere/v8/bin/ejbdeploy.sh -cp /ora01/oracle/product/was8/jdbc/lib/ojdbc6.jar /opt/local/software/abcnstalledApps/tmp/myApp_dev_31.ear /opt/local/software/abcnstalledApps/tmp /opt/local/software/abcnstalledApps/tmp/myApp_dev_31.ear_ejb.ear -quiet > /opt/local/software/abcnstalledApps/tmp/myApp.out 
    using JVM heap -Xms1024m -Xmx2048m 
    EJB Deploy configuration directory: /opt/local/software/websphere/v8/profiles/dmgr01/ejbdeploy/configuration/ 
    framework search path: /opt/local/software/websphere/v8/deploytool/itp/plugins 
    build:RAD851-I20121103_1921 
    0 Errors, 0 Warnings, 0 Informational Messages 

    Deploy EJB ear file from /opt/local/software/abcnstalledApps/tmp/myApp_dev_31.ear_ejb.ear 

    *** Invoke AdminApp Install *** 2015-02-20 07:28:48 

    AdminApp.install (/opt/local/software/abcnstalledApps/tmp/myApp_dev_31.ear_ejb.ear,[ -appname myApp -installed.ear.destination /opt/local/software/abcnstalledApps/myApp -MapModulesToServers [["MyAppEJB" MyAppEJB.jar,META-INF/ejb-jar.xml WebSphere:cell=wasd8100Cell,cluster=srv01_cluster]["MyAppWeb" MyAppWeb.war,WEB-INF/web.xml WebSphere:cell=wasd8100Cell,cluster=srv01_cluster+WebSphere:cell=wasd8100Cell,node=wasd8101,server=https-web01+WebSphere:cell=wasd8100Cell,node=wasd8104,server=https-web01]] -MapWebModToVH [["MyAppWeb" MyAppWeb.war,WEB-INF/web.xml default_host]] -update -usedefaultbindings -defaultbinding.ejbjndi.prefix ejb -defaultbinding.virtual.host default_host -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall off -noprocessEmbeddedConfig -nodeployejb -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink ]) 
    *** AdminApp Install Complete *** 2015-02-20 07:28:56 

    Deployed Location : /opt/local/software/abcnstalledApps/myApp/myApp.ear 
    Class Loader Policy : MULTIPLE (SINGLE=Application,MULTIPLE=Module) 
    Class Loader Mode : PARENT_FIRST 

    *** Saving the deployemnt *** 2015-02-20 07:28:56 

    Old Context Root: myApp 
    New Context Root: myApp 
    Same Context root, no need to genPlugin 

    *** Generate docs cache deployment request **** 2015-02-20 07:29:00 

    Duration: 44.0s 

    *** It may take up to 5-10 minutes for the ear file completely written to each node. Please have a nice coffee break:-) 
    *** Check http://serverabc:12345/Deployment_EAR_log for detail. 
+0

Похоже, ваш сервер разработки использует это используя Java 1.6 вместо 1.7. Помните, что по умолчанию WAS 8.5 использует Java 1.6, и вам нужно вручную установить 1.7 и переключить сервер на использование 1.7. – Gas

+0

Конечно, это первое, что приходит на ум, и хотя это вряд ли по следующей причине - мы все еще проверили это и это 1.7. Когда мы делаем сборку с тем же кодом at имеет многопользовательский режим, используя скрипт сборки - buildforge/ANT - и развертывайте его, мы не получаем эту конкретную ошибку. Мы получаем ошибку только при попытке развернуть EAR, экспортированного из проекта Eclipse. Вот почему я подумал: может быть что-то не хватает в настройке проекта в Eclipse, который вступает в игру при создании EAR (он также выполняется локально без проблем), что мы, возможно, пропустили. – adbdkb

+0

Когда именно вы получаете эти ошибки (во время экспорта, установки, запуска, первого запроса)? Поскольку это не похоже на ошибку из 'SystemOut.log'. И я бы сказал, что это скорее ошибка компилятора, а не ошибка времени выполнения. Я видел подобные ошибки в Eclipse во время сборки (даже когда у компилятора 1,7, у вас может быть исходный набор до 1.6), но не на сервере во время развертывания/времени выполнения. – Gas

ответ

0

Теперь это немного ясно. Ошибка во время вызова ejbdeploy. Прежде всего, вам не нужно вызывать ejbdeploy, если ваше приложение использует ejb 3.x (оно требуется только для более старых приложений, поэтому вы можете безопасно удалить этот вызов из своего скрипта для 3.x). Во-вторых, я сравнивал бы application.xml и ejb-jar.xml файлы из обоих EAR - тот, который был сгенерирован вашим скриптом сборки, и один, созданный Eclipse. Ejbdeploy использует complianceLevel, больше here

-complianceLevel X Set the JDK level X for compiler compliance to one of: 1.4(default), 5.0, 6.0, 7.0 

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

Если -complianceLevel вариант для команды ejbdeploy не указано, в любом из следующих случаев по умолчанию -complianceLevel установки Java Developer Kit V5.0, "5,0":

  • ушных или JAR-файл, который содержит Java EE 5 (или более поздней версии) или EJB 3.0 (или более поздней версии) файлы дескриптора развертывания
  • Ухо файл без каких-либо дескрипторов развертывания файлов

всех других случаях -complianceLevel установки по умолчанию для Java Developer Kit V1.4 , "1.4"

Так что я бы сказал, что, вероятно, ваш экспорт Eclipse, имеет дескриптор, который изменяет, что complianceLevel.

Попробуйте добавить в свой флаг вызова ejbdeploy -complianceLevel "7.0"

+0

. Я проверил с использованием winmerge, и оба они имеют дескрипторы развертывания для EAR и EJB (например, application.xml и ejb-jar.xml, но размеры файлов различны - тот, который терпит неудачу, имеет 7019 КБ, хороший - 6972 КБ, поэтому в генерируемом Eclipse есть что-то совершенно определенное. Также я вижу «Файл»/opt/softdepot/abcinst/was8scripts/abcUtils.py ", строка 2556, в deployEntApps" на выходе, а abcUtils.py - это домашний сценарий, в котором используются сценарии, предоставленные IBM. Я буду с помощью нашего администратора WAS посмотреть, какая разница между двумя EARs – adbdkb

+0

@adbdkb - Вы когда-нибудь выясняли, что такое решение, я сталкиваюсь с чем-то похожим. Спасибо! – risingTide

+0

К сожалению, нет. Поскольку наша группа администрирования WAS отличается, и разработчики не имеют доступа/разрешений для выполнения этих функций, я не было ab le, чтобы выполнить проб и ошибок и решить проблему – adbdkb

Смежные вопросы