powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование CDI @Produces - javax.enterprise.inject.UnsatisfiedResolutionException
2 сообщений из 2, страница 1 из 1
Использование CDI @Produces - javax.enterprise.inject.UnsatisfiedResolutionException
    #39634365
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Intellij Idea Ultimate 2017.03
Использую @Produces @Qualifier @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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.inject.Qualifier;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@WebServlet("/dip")
public class DIProduces extends HttpServlet {
    @Inject @S1
    String s1;
    @Inject @S2
    String s2;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("s1 = " + s1 + "; s2 = " + s2);
    }
}

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

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

class Producer {
    @Produces @S1
    String s1 = "String 1";
    @Produces @S2
    String s2 = "String 2";
}



Почему ошибка?:
авторHTTP Status 500 – Internal Server Error
Type Exception Report

Message Error instantiating servlet class [produces.DIProduces]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: Error instantiating servlet class [produces.DIProduces]
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)
Root Cause

javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.lang.String] is not found with the qualifiers
Qualifiers: [@produces.S2()]
for injection into Field Injection Point, field name : s2, Bean Owner : [DIProduces, WebBeansType:DEPENDENT, Name:null, API Types:[java.lang.Object,produces.DIProduces,javax.servlet.http.HttpServlet,java.io.Serializable,javax.servlet.ServletConfig,javax.servlet.GenericServlet,javax.servlet.Servlet], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]]
org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:65)
org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:279)
org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:82)
org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:65)
org.apache.webbeans.portable.InjectionTargetImpl.injectFields(InjectionTargetImpl.java:220)
org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:206)
org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:196)
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:126)
org.apache.openejb.core.WebContext.newWeakableInstance(WebContext.java:153)
org.apache.openejb.core.WebContext.newInstance(WebContext.java:181)
org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:78)
org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:124)
org.apache.tomee.catalina.JavaeeInstanceManager.newInstance(JavaeeInstanceManager.java:119)
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)
Note The full stack trace of the root cause is available in the server logs.
...
Рейтинг: 0 / 0
Использование CDI @Produces - javax.enterprise.inject.UnsatisfiedResolutionException
    #39634683
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

Добавил перед классом class Producer
Код: java
1.
@RequestScoped


Теперь работает!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование CDI @Produces - javax.enterprise.inject.UnsatisfiedResolutionException
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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