HK2服务修正失败,在javax.ws.rs.core.UriInfo的日志中警告,但例外:在UriInfo类中找不到合适的构造函数

问题描述 投票:0回答:1

[在调用某些Rest服务时,我收到HK2验证失败错误。最近,我将应用程序从JDK 8迁移到Open jdk 12。

我将org.glassfish.hk2.utilities.binding.AbstractBinder中的AbstractBinder包替换为org.glassfish.jersey.internal.inject.AbstractBinder。另外,我正在使用的自定义绑定工厂类是较早实现的org.glassfish.hk2.api.Factory,但现在我对其进行了修改,以实现java.util.function.Supplier。这给了我提到的错误。请看一下代码:

import org.glassfish.jersey.internal.inject.AbstractBinder;
import org.glassfish.jersey.process.internal.RequestScoped;

public class AppBinder extends AbstractBinder
{
@Override
protected void configure() {
    bindFactory(CustomFactory.class).to(Search.class).in(RequestScoped.class);

}
}


import org.glassfish.hk2.api.ServiceLocator;
import java.util.function.Supplier;
import javax.ws.rs.core.UriInfo;

public class CustomFactory implements Supplier<Search>
{

@Inject
private ServiceLocator serviceLocator;

public CustomFactory() {
}

@Override
public Search get() {
    return this.getSearch(serviceLocator.getAllServices(UriInfo.class).get(0).getQueryParameters());
}
}

自定义绑定工厂用于其他一些操作,例如关闭连接等。我是用正确的方式做的还是应该使用其他方法定义自定义工厂并在AppBinder类中使用它。

[在调用某些Rest服务时,我收到HK2验证失败错误。最近,我将应用程序从JDK 8迁移到Open jdk12。我从org.glassfish.hk2 ....替换了AbstractBinder程序包。...

java jersey glassfish hk2 supplier
1个回答
0
投票

感谢Paul Samsotha在评论中的建议,该问题已得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.