我正在调用REST服务,并且提供者提供了一个客户端。客户的规格是使用Jersey 2.18。所以我使用了以下的球衣依赖
我使用scheduledThreadPoolExecutor进行调用,我的应用程序在tc服务器和JDK 1.8中运行。偶尔我得到以下例外。我尝试在谷歌搜索此例外但没有运气。但我几乎每次都会看到以下内容
无法为组件类型类创建新注册> org.glassfish.jersey.client.authentication.HttpAuthenticationFeature
异常
java.lang.NullPointerException at org.glassfish.jersey.model.internal.CommonConfig.configureFeatures(CommonConfig.java:694) 在 org.glassfish.jersey.model.internal.CommonConfig.configureMetaProviders(CommonConfig.java:644) 在 org.glassfish.jersey.client.ClientConfig $ State.configureMetaProviders(ClientConfig.java:365) 在 org.glassfish.jersey.client.ClientConfig $ State.initRuntime(ClientConfig.java:398) 在 org.glassfish.jersey.client.ClientConfig $ State.access $ 000(ClientConfig.java:88) 在 org.glassfish.jersey.client.ClientConfig $州$ 3.get(ClientConfig.java:120) 在 org.glassfish.jersey.client.ClientConfig $州$ 3.get(ClientConfig.java:117) 在 org.glassfish.jersey.internal.util.collection.Values $ LazyValueImpl.get(Values.java:340) 在 org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:726) 在 org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:285) 在 org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:126) 在 org.glassfish.jersey.client.JerseyInvocation。(JerseyInvocation.java:98) 在 org.glassfish.jersey.client.JerseyInvocation。(JerseyInvocation.java:91) 在 org.glassfish.jersey.client.JerseyInvocation $ Builder.method(JerseyInvocation.java:411) 在 org.glassfish.jersey.client.JerseyInvocation $ Builder.get(JerseyInvocation.java:307)
答案 0 :(得分:0)
我解决了这个问题。我的实施是错误的。客户端对象被定义为类级变量,并在每次方法调用期间初始化。在并行呼叫期间。每个线程并发调用攻击相同的类级别对象并尝试修改,因此对象未正确初始化。现在我通过从spring注入类来修复它,以便在每次调用时都不会修改它。