2015-06-12 4 views
0

Я в процессе миграции веб-приложения Seam 2.3 в EE7. В настоящее время приложение работает на Wildfly 8.2 (версия Bill of Materials всех зависимостей) и работает отлично, за исключением проблемы с производительностью: страницы занимают минуты, чтобы загрузить или никогда не делать.Полностью отключить интеграцию JSF Weld в Wildfly 8.2

Отображается Сварка/CDI. WeldApplication добавляется где-то к цепочке приложений лиц, что приводит к постоянным неудачным попыткам решения BeanManager, а иногда и к проблемам с блокировкой потоков.

Я пробовал вычистить модуль сварки из дикой природы или запустить с включенным модулем сварки, но настроен на требуемый bean-дескриптор. Мой проект не содержит beans.xml.

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

Обходное решение: Моя текущая работа - это немного взломать, но, похоже, делает трюк. Я добавил свой собственный ApplicationFactory для faces-config.xml, который в основном обходит WeldApplication.

@Override 
public Application getApplication() { 
    return new MyApplication(delegate.getWrapped().getApplication()); 
} 

Edit # 1: Стек трассировки с проблемой производительности точки доступа, чтобы дать некоторый контекст.


javax.naming.NameNotFoundException: BeanManager -- service jboss.naming.context.java.module.make.make.BeanManager 

Exception 'javax.naming.NameNotFoundException' occurred in thread 'DefaultQuartzScheduler_Worker-1' at org.jboss.as.naming.InitialContext$DefaultInitialContext.findContext(InitialContext.java:187) 
     at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104) 
     at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202) 
     at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179) 
     at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:235) 
     at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:188) 
     at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184) 
     at javax.naming.InitialContext.lookup(InitialContext.java:417) 
     at javax.naming.InitialContext.lookup(InitialContext.java:417) 
     at org.jboss.as.jsf.injection.weld.WeldApplication.beanManager(WeldApplication.java:105) 
     - locked (a org.jboss.as.jsf.injection.weld.WeldApplication) 
     at org.jboss.as.jsf.injection.weld.WeldApplication.init(WeldApplication.java:63) 
     at org.jboss.as.jsf.injection.weld.WeldApplication.delegate(WeldApplication.java:75) 
     at org.jboss.as.jsf.injection.weld.ForwardingApplication.getResourceHandler(ForwardingApplication.java:262) 
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:640) 
     at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
     at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
     at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) 
     at nl.artefact.profiling.ProfilingFilter.doFilter(ProfilingFilter.java:30) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) 
     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at nl.artefact.profiling.TimingFilter.doFilter(TimingFilter.java:35) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
     at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 
     at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 
     at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) 
     at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) 
     at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
     at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
     at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) 
     at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) 
     at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) 
     at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) 
     at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
     at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) 
     at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) 
     at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) 
     at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) 
     at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) 
     at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) 
     at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
+1

Очень жаль, что вы Ждут» t показывает трассировку стека, поэтому подробный ответ не может быть задан. По крайней мере, аналогичная проблема была доведена до OmniFaces. Попробуйте заменить 'WeldApplication' на один показан [здесь] (https://github.com/omnifaces/omnifaces/issues/75#issuecomment-65004140). – BalusC

+0

Спасибо BalusC! Я могу добавить трассировку стека для ясности вопроса, что конкретно? Из этого не удается решить BeanManager? –

+1

Только первая причина. Другие могут быть просто последствиями, которые могут исчезнуть автоматически после устранения основной причины. – BalusC

ответ

2

Я не уверен, если это будет работать для Wildfly но я использую следующий фрагмент кода в блоке <deployment> в jboss-deployment-structure.xml отключить Weld в JBoss AS 7.2.0

<exclude-subsystems> 
    <subsystem name="weld" /> 
</exclude-subsystems> 
+0

Не повезло! Также попытался с большинством из них: http://stackoverflow.com/questions/21756707/how-to-disable-weld-on-wildfly –

+0

, чтобы уточнить, Weld/is/disabled (приложение не может начинаться с Weld из-за перекрытия Weld/Seam), но каким-то образом контейнер (или что-то на моем конце) добавляет WeldApplication в любом случае. –

+1

Хм что-то должно было измениться после Wildfly, так как это работает для меня под JB7.2 (он прекращает сканирование для beans.xml при запуске как минимум) – DaveB

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