GVKun编程网logo

java.lang.NoSuchFieldError:INSTANCE

18

如果您对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

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

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”异常

Android ProGuard“java.lang.nosuchfielderror:Toast”异常

我用ProGuard模糊了我的 Android应用程序,当试图运行我的混淆的.apk它抛出:

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();
    }

解决方法

看来您正在使用ACRA进行错误报告.我遇到同样的问题,找到答案在这里: http://code.google.com/p/acra/issues/detail?id=22

解决方案是添加

– 类org.acra.ReportingInteractionMode {*; }

到你的proguard配置文件

Caused by: java.lang.NoSuchFieldError: INSTANCE

Caused by: java.lang.NoSuchFieldError: INSTANCE

高春辉、王春生、朱峰:关于开源创业的 15 件小事

转:

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

转:

Caused by: java.lang.NoSuchFieldError: INSTANCE


--Posted from Rpc

edas部署环境 java 报错,java.lang.NoSuchFieldError

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的相关信息,请在本站查询。

本文标签: