如何将Microprofile类注入使用jersey框架的测试类中

我正在尝试创建一个测试类来测试一个注入了微观配置文件指标界面的类。但是,当运行一个类时,它会向我返回以下错误。

create table temp
(
    date datetime,category varchar(6),amount money
)

insert into temp values ('1/1/2012','ABC-CO',1000.00)
insert into temp values ('2/1/2012','DEF',500.00)
insert into temp values ('2/1/2012','GHI-PR',800.00)
insert into temp values ('2/10/2012',700.00)
insert into temp values ('3/1/2012','ABC',1100.00)


DeclARE @cols AS NVARCHAR(MAX),@query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(REPLACE(REPLACE(c.category,'-PR',''),'-CO',''))
        FROM temp c
        FOR XML PATH(''),TYPE
        ).value('.','NVARCHAR(MAX)'),1,'')

set @query = 'SELECT date,' + @cols + ' from 
        (
            select date,amount,REPLACE(REPLACE(category,''-PR'',''''),''-CO'','''') as category
            from temp
       ) x
        pivot 
        (
             max(amount)
            for category in (' + @cols + ')
        ) p '


execute(@query)

drop table temp

我认为球衣看不到微轮廓,但我已经尝试了很多方法,但无法解决此问题。

跟随我项目的一些文件。

org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=MetricRegistry,parent=TipodocExceptionHandler,qualifiers={@org.eclipse.microprofile.metrics.annotation.RegistryType(type=APPLICATION)},position=-1,optional=false,self=false,unqualified=null,453671855)
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74)
    at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:214)
    at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:237)
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:360)
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
    at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:82)
    at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:70)
    at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
    at java.util.concurrent.Futuretask.run(Unknown Source)
    at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
    at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
    at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:121)
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2064)
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:105)
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)
    at org.glassfish.jersey.internal.ExceptionmapperFactory.<init>(ExceptionmapperFactory.java:173)
    at sun.reflect.NativeConstructoraccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructoraccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructoraccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1129)
    at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:274)
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:368)
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
    at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:82)
    at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:70)
    at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
    at java.util.concurrent.Futuretask.run(Unknown Source)
    at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
    at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
    at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:121)
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2064)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:636)
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:77)
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:945)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:923)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:998)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:989)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:544)
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:166)
    at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:327)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:324)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:289)
    at org.glassfish.jersey.jetty.JettyHttpContainer.<init>(JettyHttpContainer.java:452)

按照我对pom.xml的测试依赖性

public class CadastroControllerTest extends JerseyTest {

    @Mock
    private CadastroService cadastroService;

    @Override
    protected Application configure() {
        MockitoAnnotations.initMocks(this);

        ResourceConfig config = new ResourceConfig(Cadastro.class,TipodocException.class,TipodocExceptionHandler.class);

        config.register(new AbstractBinder() {

            @Override
            protected void configure() {
                bind(cadastroService).to(CadastroService.class);
            }
        });
        return config;
    }

我的班级,他们注入了微轮廓指标。

        <!-- Tests dependencies -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.test-framework</groupId>
            <artifactId>jersey-test-framework-core</artifactId>
            <version>${jersey.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.ext.cdi</groupId>
            <artifactId>jersey-cdi1x</artifactId>
            <version>${jersey.version}</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
            <artifactId>jersey-test-framework-provider-jetty</artifactId>
            <version>${jersey.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>${jersey.version}</version>
            <scope>test</scope>
        </dependency>
FWBOOO 回答:如何将Microprofile类注入使用jersey框架的测试类中

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2828945.html

大家都在问