带有限定符 @Default 的类型的不满意依赖项

如何解决带有限定符 @Default 的类型的不满意依赖项

我在运行 Java 应用程序时收到 WELD-001440 错误。我在 Servlet 类上有一个简单的用户界面。它的主要功能添加新用户。我正在尝试在另一个类中实现使用 api 进行电子邮件验证。

EmailValidationApiOdjemalec 是我尝试从中发出 API 请求的类。 JPAServlet 是我从中调用 EmailValidationApiOdjemalec 类的类。

这是 EmailValidationApiOdjemalec 类

package si.fri.prpo.sledilnik.storitve.odjemalci;

import si.fri.prpo.sledilnik.entitete.Uporabnik;
import si.fri.prpo.sledilnik.storitve.zrna.UpravljanjePrehodovZrno;

import javax.annotation.postconstruct;
import javax.inject.Inject;
import javax.print.attribute.standard.Media;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import java.net.http.HttpRequest;
import java.util.logging.Logger;

public class EmailValidationApiOdjemalec {

    private Client httpClient;
    private String baseURl = "https://rapidprod-something something";
    private String key = "my personal key";
    private String host = "host";
    private Logger log = Logger.getLogger(EmailValidationApiOdjemalec.class.getName());


    @postconstruct
    private void init() {
        log.info("Inicializacija zrna " + EmailValidationApiOdjemalec.class.getSimpleName());

        httpClient = ClientBuilder.newClient();
    }

    public boolean imaUstrezenEmail(Uporabnik uporabnik) {

        String email = uporabnik.getEmail();

        try {

            httpClient
                    .target(baseURl)
                    .queryParam("text",email)
                    .request(MediaType.APPLICATION_JSON)
                    .header("x-rapid-host","whoisapi-email-verification-v1.p.rapidapi.com")
                    .header("x-rapid-key","my rapid key ")
                    .get();

        } catch (WebApplicationException | ProcessingException e) {
            System.out.println("Exception");
        }


        log.info(httpClient.toString());

        return true;
    }
}

在这一个 JPAServlet 类,我尝试从中注入,然后从 EmailValidationApiOdjemalec 类调用方法

package si.fri.prpo.sledilnik.servleti;

import si.fri.prpo.sledilnik.entitete.Uporabnik;
import si.fri.prpo.sledilnik.storitve.dto.PrehodDto;
import si.fri.prpo.sledilnik.storitve.dto.ProstorDto;
import si.fri.prpo.sledilnik.storitve.odjemalci.EmailValidationApiOdjemalec;
import si.fri.prpo.sledilnik.storitve.zrna.*;
import si.fri.prpo.sledilnik.entitete.Prostor;
import si.fri.prpo.sledilnik.api.v1.viri.UporabnikiVir;
import si.fri.prpo.sledilnik.entitete.Vhod;

import si.fri.prpo.sledilnik.entitete.Prehod;


import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Model;
import javax.inject.Inject;
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.io.PrintWriter;
import java.util.List;
import java.util.logging.Logger;

@WebServlet("/servlet")
public class JPAServlet extends HttpServlet {


    @Inject
    private UporabnikiZrno uporabnikiZrno;

    @Inject
    private EmailValidationApiOdjemalec emailValidationApiOdjemalec;

    @Override
    protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws servletexception,IOException {

        Logger log = Logger.getLogger(UporabnikiVir.class.getName());

        Uporabnik zan = new Uporabnik();
        zan.setIme("Zan");
        zan.setPriimek("Debevec");
        zan.setProstor(dnevnaSoba);
        zan.setEmail("zan@gmail.com");
        if (!emailValidationApiOdjemalec.imaUstrezenEmail(zan)) {
            log.info("Uporabnik nima pravega emaila");
        }
        uporabnikiZrno.dodajUporabnika(zan);
}
}

还有一条错误信息:

2020-12-23 19:58:31.673 WARN -- org.jboss.weld.bootstrap.Validator -- WELD-001440: Scope type @javax.enterprise.context.Dependent() used on injection point [BackedAnnotatedField] @Inject @Dependent private si.fri.prpo.sledilnik.servleti.JPAServlet.emailValidationApiOdjemalec
    at si.fri.prpo.sledilnik.servleti.JPAServlet.emailValidationApiOdjemalec(JPAServlet.java:0)
  StackTrace
2020-12-23 19:58:31.674 WARNING -- org.eclipse.jetty.annotations.ServletContainerInitializeRSStarter -- 
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type EmailValidationApiOdjemalec with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject @Dependent private si.fri.prpo.sledilnik.servleti.JPAServlet.emailValidationApiOdjemalec
  at si.fri.prpo.sledilnik.servleti.JPAServlet.emailValidationApiOdjemalec(JPAServlet.java:0)

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:378)
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:290)
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:143)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:164)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:526)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:64)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:62)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)

谁能发现哪里出了问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?