如果您对java.lang.NoSuchFieldError:INSTANCE感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于java.lang.NoSuchFieldErr
如果您对java.lang.NoSuchFieldError:INSTANCE感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于java.lang.NoSuchFieldError:INSTANCE的详细内容,并且为您提供关于android java.lang.NoSuchFieldError: R$id.xxx、Android ProGuard“java.lang.nosuchfielderror:Toast”异常、Caused by: java.lang.NoSuchFieldError: INSTANCE、edas部署环境 java 报错,java.lang.NoSuchFieldError的有价值信息。
本文目录一览:- java.lang.NoSuchFieldError:INSTANCE
- android java.lang.NoSuchFieldError: R$id.xxx
- Android ProGuard“java.lang.nosuchfielderror:Toast”异常
- Caused by: java.lang.NoSuchFieldError: INSTANCE
- edas部署环境 java 报错,java.lang.NoSuchFieldError
java.lang.NoSuchFieldError:INSTANCE
尝试通过StormSubmitter提交结构时,我得到
Caused by: java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
我正在使用Spring。
我没有在Spout / Bolt构造函数中初始化HttpClient。相反,它是在prepare()通过螺栓方法从Spring Context中获取的类的构造函数中初始化的
代码的结构如下-
SomeBolt.java
@Componentpublic class SomeBolt extends BaseRichBolt { private OutputCollector _collector; private SomeClient someClient; @Override public void prepare(Map conf, TopologyContext context, OutputCollector collector) { _collector = collector; someClient = AppContext.getBean(SomeClient.class); }}
SomeClient.java
@Componentpublic class SomeClient { private final CloseableHttpClient httpClient; public SomeClient() { this.httpClient = (httpClient == null ? HttpClients.createDefault() : httpClient); }}
AppContext.java
@Componentpublic class AppContext implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { AppContext.applicationContext = applicationContext; } public static <T> T getBean(Class<T> c) { return applicationContext.getBean(c); }}
答案1
小编典典我遇到了类似的问题,在我的类路径中有两个包含相同类的jar,即httpcore-4.3和apache-httpcomponents-httpcore,我从类路径中删除了apache-httpcomponents-httpcore解决了该问题。
android java.lang.NoSuchFieldError: R$id.xxx
第一种情况 参考自http://www.shangxueba.com/jingyan/1856083.html
将引用的自定义控件的xml文件中的最外层布局上面添加xmlns:sat=“http://schemas.Android.com/apk/res/控件所在位置的包名”可是在运行时就会报java.lang.NoSuchFieldError:包.R$id.xxx错。同时还会出现no resource identifier found for attribute 的错误。
将xmlns:sat=“http://schemas.android.com/apk/res/控件所在位置的包名”更改为
http://schemas.android.com/apk/res-auto 就不会报错了
第二种 参考:http://www.hankcs.com/program/mobiledev/e-androidruntime-fatal-exception-main-java-lang-nosuchfielderror.html
这个问题是由于主项目覆盖了库项目的xml所致,如果主项目中的某个xml里定义了一个跟库项目中的xml同名的xml,那么库中的xml将会被覆盖。这里的覆盖意思是,编译后只有主项目中的xml以及R.id,完全没有库项目的影子。所以才会有NoSuchFieldError的错误。
这个错误不会在编译的时候提示,算得上一个陷阱了。
解决方法很简单,删除主项目中的xml,整个项目只保留一份xml即可。
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=554097
Android ProGuard“java.lang.nosuchfielderror:Toast”异常
java.lang.nosuchfielderror: Toast
这是我的proguard.cfg文件:
<!-- language: lang-none --> -injars bin/classes //injars -injars libs //injars -outjars bin/classes-processed.jar -optimizationpasses 1 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -allowaccessmodification -keepattributes *Annotation* -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -printmapping D:/out.map -renamesourcefileattribute ProGuard -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod -libraryjars C:/Program Files/Android/android-sdk/platforms/android 12/android.jar -dontwarn android.support.** -dontwarn com.android.** -dontwarn com.google.** -dontwarn org.apache.** -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.broadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context,android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context,android.util.AttributeSet,int); } -keepclassmembers class *.R${ public static <fields>; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class * extends android.app.Activity { public void *On*Click(android.view.View); public void *on*Click(android.view.View); } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readobject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }
解决方法
解决方案是添加
– 类org.acra.ReportingInteractionMode {*; }
到你的proguard配置文件
Caused by: java.lang.NoSuchFieldError: INSTANCE

转:
Caused by: java.lang.NoSuchFieldError: INSTANCE
目的:发送 https 请求,信任所有证书,
代码如下:
public static String httpsImage2Base64(String httpsUrl) {
log.info("进入下载https图片"+ httpsUrl);
ByteArrayOutputStream outStream = null;
InputStream is = null;
try {
CloseableHttpClient client = HttpClients.custom()
.setSSLSocketFactory(getSocketFactory()).build();
log.info("client 成功");
//执行
HttpGet httpGet = new HttpGet(httpsUrl);
CloseableHttpResponse response = client.execute(httpGet);
log.info("response="+ response.getStatusLine().getStatusCode());
if(200 == response.getStatusLine().getStatusCode() || "OK".equals(response.getStatusLine().getReasonPhrase())){
//状态成功
HttpEntity entity = response.getEntity();
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream in = entity.getContent();
byte[] buffer = new byte[1024];
int len = 0;
while((len = in.read(buffer))!=-1){
out.write(buffer);
}
String base64 = Base64.getEncoder().encodeToString(out.toByteArray());
if (!base64.startsWith("data:image/jpg;base64,")) {
base64 = "data:image/jpg;base64," + base64;
}
return base64;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outStream != null) {
try {
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
// 忽略服务器端证书链的认证
private static TrustManager getTrustManagers() {
return new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
};
}
private static SSLConnectionSocketFactory getSocketFactory() throws Exception {
SSLContext sslContext;
try {
// 加载客户端证书,并设置HTTPS的安全协议为 TLSv1.2
sslContext = SSLContexts.custom().loadKeyMaterial(null, "passwd".toCharArray()).useProtocol("TLSv1.2").build();
} catch (NoSuchAlgorithmException e) {
return null;
}
try {
sslContext.init(null, new TrustManager[]{getTrustManagers()}, new java.security.SecureRandom());
} catch (KeyManagementException e) {
return null;
}
return new SSLConnectionSocketFactory(sslContext);
}
本地单文件执行无问题,打包到服务器报错:
2020-11-19 16:48:49.540 [http-nio-8801-exec-1] ERROR com.iss.soc.common.exception.RequestExceptionHandle.handler [RequestExceptionHandle.java:123] - RequestExceptionHandle handler exception:
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: INSTANCE
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.
(DefaultHttpRequestWriterFactory.java:53)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.
(DefaultHttpRequestWriterFactory.java:57)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.
(DefaultHttpRequestWriterFactory.java:47)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.
(ManagedHttpClientConnectionFactory.java:83)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.
(ManagedHttpClientConnectionFactory.java:96) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.
(ManagedHttpClientConnectionFactory.java:105) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.
(ManagedHttpClientConnectionFactory.java:63) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.
(PoolingHttpClientConnectionManager.java:601) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.
(PoolingHttpClientConnectionManager.java:180) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.
(PoolingHttpClientConnectionManager.java:164) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:984) at com.iss.soc.biz.video.service.VideoAbilityServiceImpl.getHttpsImage(VideoAbilityServiceImpl.java:349) at com.iss.soc.biz.video.service.VideoAbilityServiceImpl.platformSnapping(VideoAbilityServiceImpl.java:192) at com.iss.soc.biz.video.rest.VideoAbilityController.manualCapture(VideoAbilityController.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) 2020-11-19 16:49:03.373 [http-nio-8801-exec-2] ERROR com.iss.soc.common.exception.RequestExceptionHandle.handler [RequestExceptionHandle.java:123] - RequestExceptionHandle handler exception: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128) at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66) at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.
(PoolingHttpClientConnectionManager.java:601) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.
(PoolingHttpClientConnectionManager.java:180) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.
(PoolingHttpClientConnectionManager.java:164) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:984) at com.iss.soc.biz.video.service.VideoAbilityServiceImpl.getHttpsImage(VideoAbilityServiceImpl.java:349) at com.iss.soc.biz.video.service.VideoAbilityServiceImpl.platformSnapping(VideoAbilityServiceImpl.java:192) at com.iss.soc.biz.video.rest.VideoAbilityController.manualCapture(VideoAbilityController.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
原因为 spring 框架下的 httpclient 的 jar 包和 apache 的 httpclient 的 jar 包冲突,解决方法如下,忽略 spring 框架下的 httpclient 的 jar 包
转:
Caused by: java.lang.NoSuchFieldError: INSTANCE
--Posted from Rpc
edas部署环境 java 报错,java.lang.NoSuchFieldError
现象
这段时间在做主机迁移,搞定数据库和oss后,测试了下oss上传功能,结果服务器报错。 war包在本地运行是没有问题的,我把现在线上的war部署到迁移主机中,结果迁移主机还是如上报错。
com.sun.xml.ws.server.sei.TieHandler.createResponse INSTANCE
java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
过程
找了阿里云的技术人员,他们说是因为害怕oracle商业纠纷,迁移后的新版本私有云edas不提供了oracle jdk组件,只提供open jdk组件,而之前的私有云提供oracle jdk组件的。
当时提了两个选择:
- 1.私有云开通oracle jdk服务,在数据库里改下配置,这样所有人都能使用。 但是公司云中心的人也害怕商业纠纷,不给开。
- 2.自己部署有oracle jdk 的ecs服务,但是ecs不能被edas托管,因为托管后,edas会强制使用open jdk,自己装的oracle jdk 不能用。 项目负责人选择还是使用edas部署,虽然这个项目两年都没改过代码。
解决
在这种情况下,只能使用openjdk,并需要自己解决这个问题。
失败的尝试
我下载了openjdk,并将代码全部改为了openjdk,然后本地打包测试,自信满满,结果还是报这个错误。
升级jar包
这样,可以肯定是war包有问题了,我升级了下oss的jar包,从2.8.x升级到3.10.2,还升级了其他相关的oss依赖。这次还是报错了。
解决问题
我又百度了下,感觉还是jar包冲突问题。我下载了jar的资源包,然后在idea中点击那个字段,发现右上角提示另一处还有相同的class,它的前缀是jar包名。 我看到了,找到了jar包,暴力删除了他,发现构建没问题,然后重新打包,本地测试,线上测试,都ok。
整个事件中
- 1.对edas新特性不熟悉是主要原因。
- 2.思维定势:因为之前也百度到是jar包冲突,可是在之前我war能在生产正常运行的前提下,思维会受到定势影响。而且刚开始使用oracle jdk,也没发现整个class的冲突。
我们今天的关于java.lang.NoSuchFieldError:INSTANCE的分享已经告一段落,感谢您的关注,如果您想了解更多关于android java.lang.NoSuchFieldError: R$id.xxx、Android ProGuard“java.lang.nosuchfielderror:Toast”异常、Caused by: java.lang.NoSuchFieldError: INSTANCE、edas部署环境 java 报错,java.lang.NoSuchFieldError的相关信息,请在本站查询。
本文标签: