Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB Inject / 15 сообщений из 15, страница 1 из 1
15.09.2016, 19:31
    #39309876
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Читаю тут книгу про EJB

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Вызов с использованием CDI
Как вы только что видели, для вызова метода в EJB-компоненте требуется только
аннотация @EJB , позволяющая внедрить ссылку в клиентский код. Все довольно
просто: вы получаете ссылку во время развертывания. Однако @EJB не обеспечива-
ет, например, чего-то подобного CDI-альтернативам. Взамен вам придется исполь-
зовать аннотацию @Inject .
В большинстве случаев вы можете просто заменять @EJB аннотацией @Inject ,
и ваш клиентский код будет работать. Сделав это, вы получите все преимущества
CDI, которые видели в главе 2. Таким образом, если мы обратимся к приведенным
ранее примерам, то вот как обеспечивалось бы EJB-внедрение с использованием
CDI в случае с клиентом:
...
@Inject ItemEJB itemEJB;
@Inject ItemLocal itemEJBLocal;
@Inject ItemRemote itemEJBRemote;
В случае с удаленными EJB-компонентами, как вы только что видели, вам может
потребоваться JNDI-строка для их поиска. Аннотация @Inject не может обладать
строковым параметром, так что при этом вам придется создать удаленный EJB-
компонент, чтобы вы смогли внедрить его:
...
В зависимости от клиентской среды у вас может отсутствовать возможность
использовать внедрение (если компонент не управляется контейнером). В этом
случае попробуйте обратиться к JNDI для поиска сессионных EJB-компонентов
с помощью их переносимых JNDI-имен.




Собственно вопрос
Это просто


@EJB(lookup = "java:global/example.services-1.0/core-1.0/ISprk!com.example.INsiSprk")
ItemEJB itemEJB;

заменить на

@Inject
ItemEJB itemEJB; ?
...
Рейтинг: 0 / 0
16.09.2016, 11:25
    #39310113
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
смотря куда инжектить, если в рамках одного jar то да. Если в веб, или другое приложение, возможно нужен ремоут лукап
...
Рейтинг: 0 / 0
16.09.2016, 14:05
    #39310236
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
забыл никсмотря куда инжектить, если в рамках одного jar то да. Если в веб, или другое приложение, возможно нужен ремоут лукап
А если на сервере приложении есть

server.ear с EJB бинами
web.war

Я хочу использоваться в web.war бины приложения server, бины должны быть Remote или Local?
...
Рейтинг: 0 / 0
16.09.2016, 14:23
    #39310254
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
-=Koba=-,
локал, ремоут это когда на другой JVM аппликэйшн сервер.
...
Рейтинг: 0 / 0
16.09.2016, 15:18
    #39310327
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
no56892-=Koba=-,
локал, ремоут это когда на другой JVM аппликэйшн сервер.

serber.ejb
Код: java
1.
2.
3.
4.
5.
@Stateless
public class CatalogueFacadeBean implements ICatalogueService {}

@Remote
public interface ICatalogueService {}



web.war
Код: java
1.
2.
3.
4.
public class CatalogueDetailsPage extends AbstractBasePage {
    @EJB(lookup = "java:global/mobile.bank.services-1.0.5/api.ejb-1.1/CatalogueFacadeBean!by.softclub.common.api.ICatalogueService")
    private ICatalogueService iCatalogueService;
}



Отрабатывает нормально, меняю Remote на Local (все находится на одном сервере приложений)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
Caused by: com.sun.faces.spi.InjectionProviderException: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
	at org.jboss.as.jsf.injection.JSFInjectionProvider.invokePostConstruct(JSFInjectionProvider.java:70) [wildfly-jsf-injection-9.0.2.Final.jar:9.0.2.Final]
	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:221) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	... 71 more
Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:163)
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
	at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:99)
	at org.jboss.as.ee.component.ComponentRegistry$ComponentManagedReferenceFactory.getReference(ComponentRegistry.java:171)
	at org.jboss.as.ee.component.ComponentRegistry.createInstance(ComponentRegistry.java:87)
	at org.jboss.as.web.common.WebInjectionContainer.newInstance(WebInjectionContainer.java:77)
	at org.jboss.as.jsf.injection.JSFInjectionProvider.invokePostConstruct(JSFInjectionProvider.java:68) [wildfly-jsf-injection-9.0.2.Final.jar:9.0.2.Final]
	... 72 more
Caused by: java.lang.IllegalArgumentException: Can not set by.softclub.common.api.ICatalogueService field by.softclub.abank.admin.ui.page.CatalogueDetailsPage.iCatalogueService to by.softclub.common.api.ICatalogueService$$$view83
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) [rt.jar:1.8.0_102]
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) [rt.jar:1.8.0_102]
	at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) [rt.jar:1.8.0_102]
	at java.lang.reflect.Field.set(Field.java:764) [rt.jar:1.8.0_102]
	at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:106)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-9.0.2.Final.jar:9.0.2.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
	... 78 more

15:13:45,648 ERROR [stderr] (default task-18) Caused by: java.lang.IllegalArgumentException: Can not set by.softclub.common.api.ICatalogueService field by.softclub.abank.admin.ui.page.CatalogueDetailsPage.iCatalogueService to by.softclub.common.api.ICatalogueService$$$view83
15:13:45,648 ERROR [stderr] (default task-18) 	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
15:13:45,648 ERROR [stderr] (default task-18) 	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
15:13:45,648 ERROR [stderr] (default task-18) 	at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
15:13:45,648 ERROR [stderr] (default task-18) 	at java.lang.reflect.Field.set(Field.java:764)
15:13:45,648 ERROR [stderr] (default task-18) 	at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:106)
15:13:45,648 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
15:13:45,648 ERROR [stderr] (default task-18) 	at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
15:13:45,650 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
15:13:45,650 ERROR [stderr] (default task-18) 	at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
15:13:45,650 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
15:13:45,651 ERROR [stderr] (default task-18) 	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
15:13:45,651 ERROR [stderr] (default task-18) 	... 78 more
15:13:45,651 SEVERE [org.primefaces.application.exceptionhandler.PrimeExceptionHandler] (default task-18) java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance: com.sun.faces.spi.InjectionProviderException: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
	at org.jboss.as.jsf.injection.JSFInjectionProvider.invokePostConstruct(JSFInjectionProvider.java:70) [wildfly-jsf-injection-9.0.2.Final.jar:9.0.2.Final]
	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:221) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:103) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116) [javax.el-impl-3.0.1-b05-jbossorg-1.jar:3.0.1-b05-jbossorg-1]
	at com.sun.el.parser.AstValue.getBase(AstValue.java:151) [javax.el-impl-3.0.1-b05-jbossorg-1.jar:3.0.1-b05-jbossorg-1]
	at com.sun.el.parser.AstValue.getValue(AstValue.java:200) [javax.el-impl-3.0.1-b05-jbossorg-1.jar:3.0.1-b05-jbossorg-1]
	at com.sun.el.parser.AstNot.getValue(AstNot.java:63) [javax.el-impl-3.0.1-b05-jbossorg-1.jar:3.0.1-b05-jbossorg-1]
	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226) [javax.el-impl-3.0.1-b05-jbossorg-1.jar:3.0.1-b05-jbossorg-1]
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:458) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1850) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:176) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:81) [primefaces-5.0.jar:5.0]
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:68) [primefaces-5.0.jar:5.0]
	at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:64) [primefaces-5.0.jar:5.0]
	at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:40) [primefaces-5.0.jar:5.0]
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) [jsf-impl-2.2.12-jbossorg-2.jar:2.2.12-jbossorg-2]
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) [jboss-jsf-api_2.2_spec-2.2.12.jar:2.2.12]
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98) [primefaces-5.0.jar:5.0]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at com.github.zhanhb.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:55) [character-encoding-filter-2.1.6.4.jar:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at by.softclub.abank.admin.ui.faces.UrlFilter.doFilter(UrlFilter.java:118) [classes:]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172) [undertow-servlet-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774) [undertow-core-1.2.9.Final.jar:1.2.9.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_102]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_102]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_102]
Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:163)
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
	at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:99)
	at org.jboss.as.ee.component.ComponentRegistry$ComponentManagedReferenceFactory.getReference(ComponentRegistry.java:171)
	at org.jboss.as.ee.component.ComponentRegistry.createInstance(ComponentRegistry.java:87)
	at org.jboss.as.web.common.WebInjectionContainer.newInstance(WebInjectionContainer.java:77)
	at org.jboss.as.jsf.injection.JSFInjectionProvider.invokePostConstruct(JSFInjectionProvider.java:68) [wildfly-jsf-injection-9.0.2.Final.jar:9.0.2.Final]
	... 72 more
Caused by: java.lang.IllegalArgumentException: Can not set by.softclub.common.api.ICatalogueService field by.softclub.abank.admin.ui.page.CatalogueDetailsPage.iCatalogueService to by.softclub.common.api.ICatalogueService$$$view83
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) [rt.jar:1.8.0_102]
	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) [rt.jar:1.8.0_102]
	at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) [rt.jar:1.8.0_102]
	at java.lang.reflect.Field.set(Field.java:764) [rt.jar:1.8.0_102]
	at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:106)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-9.0.2.Final.jar:9.0.2.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
	... 78 more



Почему не рaботает Local?
...
Рейтинг: 0 / 0
16.09.2016, 16:10
    #39310418
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Если меняешь с ремоута на локальный, то вот это
Код: java
1.
(lookup = "java:global/mobile.bank.services-1.0.5/api.ejb-1.1/CatalogueFacadeBean!by.softclub.common.api.ICatalogueService")

надо убирать, оставить просто EJB.
Опять же есть много зависит от:
-версии сервера
-архитектуры(например с Eclipse RAP какой-то версии помню дикие пляски с бубном и тп)
- от кода(хз что у вас там и как, может какие xml.
...
Рейтинг: 0 / 0
16.09.2016, 16:31
    #39310451
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Походу local внутри одной JVM не прокатывает =(

http://stackoverflow.com/questions/5681197/access-a-local-session-bean-from-another-ear/5683436#5683436
...
Рейтинг: 0 / 0
16.09.2016, 16:41
    #39310468
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
-=Koba=-Походу local внутри одной JVM не прокатывает =(
http://stackoverflow.com/questions/5681197/access-a-local-session-bean-from-another-ear/5683436#5683436
С точки зрения спеки, может, и не прокатывает. Но вендоры предоставляют кучу дополнительной функциональности. О чем там по ссылке сказано. Что за контейнер используется?
...
Рейтинг: 0 / 0
16.09.2016, 16:42
    #39310471
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Blazkowicz-=Koba=-Походу local внутри одной JVM не прокатывает =(
http://stackoverflow.com/questions/5681197/access-a-local-session-bean-from-another-ear/5683436#5683436
С точки зрения спеки, может, и не прокатывает. Но вендоры предоставляют кучу дополнительной функциональности. О чем там по ссылке сказано. Что за контейнер используется?

Wildfly 9.0.2
...
Рейтинг: 0 / 0
16.09.2016, 17:01
    #39310493
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Прикольно, вот так вот плавно мы перешли наконец к тому что надо инжектнуть ejb с одного ear в другой?
...
Рейтинг: 0 / 0
16.09.2016, 17:03
    #39310494
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
В чем проблема выделить такие ejb в отдельное приложение и навернуть REST интерфейс поверх?
...
Рейтинг: 0 / 0
16.09.2016, 17:22
    #39310513
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
забыл никПрикольно, вот так вот плавно мы перешли наконец к тому что надо инжектнуть ejb с одного ear в другой?

Я же писал, что server.ear & web.war
@Remote работает, просто стало интересно почему с @Local такие проблемы

Еще вопрос, вот такой код для @Remote проходит
Код: java
1.
2.
3.
4.
public class CatalogueDetailsPage extends AbstractBasePage {
    @EJB(lookup = "java:global/mobile.bank.services-1.0.5/api.ejb-1.1/CatalogueFacadeBean!by.softclub.common.api.ICatalogueService")
    private ICatalogueService iCatalogueService;
}




Хотел бы заменить @EJB на @Inject
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public class CatalogueDetailsPage extends AbstractBasePage {
    @Inject
    @EJBBean
    private ICatalogueService iCatalogueService;
}

@Stateless
public class EJBFactory {

    @EJB(lookup = "java:global/mobile.bank.services-1.0.5/api.ejb-
    protected ICatalogueService iCatalogueService;
 
   @Produces
   @EJBBean
   public ICatalogueService getiCatalogueService() {
        return iCatalogueService;
    }
}

@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER })
public @interface EJBBean {

}

}




Почему-то получаю iCatalogueService java.lang.NullPointerException
...
Рейтинг: 0 / 0
20.09.2016, 08:49
    #39311644
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Может подсказать почему при инъекции applicationBean у меня null?

public_html\WEB-INF\faces-config.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              version="2.2"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <application>
        <locale-config>
            <default-locale>ru</default-locale>
        </locale-config>

        <resource-bundle>
            <base-name>by.softclub.abank.admin.ui.resources.Labels</base-name>
            <var>lbl</var>
        </resource-bundle>

        <resource-bundle>
            <base-name>by.softclub.abank.admin.ui.resources.Regexp</base-name>
            <var>regexp</var>
        </resource-bundle>

        <action-listener>org.primefaces.application.DialogActionListener</action-listener>
        <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>

        <!--   <view-handler>org.primefaces.application.DialogViewHandler</view-handler>  -->
        <el-resolver>
            org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver
        </el-resolver>
    </application>

    <factory>
        <exception-handler-factory>
            org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory
        </exception-handler-factory>
    </factory>

    <lifecycle>
        <phase-listener>by.softclub.abank.admin.ui.faces.UniqueSessionPhaseListener</phase-listener>
    </lifecycle>

</faces-config>



public_html\WEB-INF\beans.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       version="1.2" bean-discovery-mode="annotated">

    <!-- some content -->
</beans>



UniqueSessionPhaseListener
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class UniqueSessionPhaseListener implements PhaseListener {

    @Inject
    ApplicationBean applicationBean;

    public PhaseId getPhaseId() {
        return PhaseId.RENDER_RESPONSE;
    }

    public void afterPhase(PhaseEvent phaseEvent) {
    }

    public void beforePhase(PhaseEvent phaseEvent) {
        if (applicationBean.sessionIntercepted(FacesUtils.getSession())) {
            SessionBean sessionBean = (SessionBean) FacesUtils.getSession().getAttribute("sessionBean");
            if (sessionBean.isAuthenticated()) {
                sessionBean.logoutAction();
            }
        }
    }

}




ApplicationBean
Код: java
1.
2.
3.
4.
5.
6.
7.
@ApplicationScoped
@Named("applicationBean")
public class ApplicationBean implements Serializable {
    public ApplicationBean() {
    }

}
...
Рейтинг: 0 / 0
20.09.2016, 09:56
    #39311694
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
Нашел тут

Код: java
1.
Before JSF 2.2, PhaseListeners are not registered as CDI injection targets. Using @Inject (and @EJB) has effectively no effect in PhaseListeners. You'd need to manually grab the CDI managed beans by programmatically evaluating an EL expression referencing the @Named's (implicit) name, or as last resort via JNDI and BeanManager which is quite clumsy.



http://stackoverflow.com/questions/19930241/how-to-inject-in-a-phaselistener

Но все равно ловлю null pointer

Код: java
1.
2.
3.
4.
5.
public static ApplicationBean getApplicationBean() {
    FacesContext context = FacesContext.getCurrentInstance();
    return context.getApplication()
            .evaluateExpressionGet(context, "#{applicationBean}", ApplicationBean.class);
}



Примечательно, когда ApplicationBean бsk аннотирован @ManagedBean все работало
...
Рейтинг: 0 / 0
21.09.2016, 09:17
    #39312407
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB Inject
1 Как можно узнать лежит по правильному пути лежит beans.xml (faces-config находит), так что думаю вряд ли но все же
2 Настройки сервера, его библиотеки (WildFly 9), не могут ли влиять на CDI ?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB Inject / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]