大部分问题可以从百度查,一些不好查的可以到https://stackoverflow.com/去查
1:Exception in thread “main” java.lang.OutOfMemoryError: GC overhead limit exceeded
JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。
一般是因为堆太小。导致异常的原因:没有足够的内存。
二、解决方案:
1、查看系统是否有使用大内存的代码或死循环。
2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit
2:java.util.regex.PatternSyntaxException: Unclosed character class near index 0
解决办法为在[加上\\转义
3:Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud
java.net.UnknownHostException: cloud: cloud
#vi /etc/hosts
添加
127.0.0.1 cloud
4:BeanCreationException
spring mvc+mybatis刚开始报找不到类,检查发现都没问题,考虑到类是由mybatis的生成的,可能 问题出在这里,于是把注解(@Autowired(required=false)),后报
org.xml.sax.SAXParseException: The content of elements must consist of well-form于是检查xml文件中是否存在不合法的字符,然后使用<![CDATA[]]>括起
parameterType="com.chinacache.entity.AlarmSearch">
select * from alarm_records t ,alarm_billingbandwidth c
where t.config_id=c.id and c.billingcode=#{billingcode} and
alarm_time>=to_date('#{startTime}','yyyy-mm-dd hh24:mi:ss') and
alarm_time<![CDATA[<]]>=to_date('#{endTime}','yyyy-mm-dd hh24:mi:ss')
</select>
5 Cause: java.io.UTFDataFormatException: Invalid byte 3 of 3-byte UTF-8 sequence. 的原因和解决办法
1. 改class 下面的文件,把乱码的文字部分删除即可.
2. 一般源码是没事的,直接拷贝到classess 下面即可.
但这二种办法的后患是再修改配置文件再编译时还会出错,所以最好的办法就是
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
直接就编译成正确的。
6:SocketException: Too many open files
于是用命令
ulimit -a
(效果:查看每个用户允许打开的最大文件数)
看到最大文件数是1024,将其更改大点,如
ulimit -n 4096
然后必须重启下网络服务,我用的是WebLogic,重启之后便没有出现异常。
导致 Too many open files ,网络请求过多是一种可能,但也有可能是程序上的缺陷,如没有释放一些文件句柄,程序open了文件却忘记了在最后close。但我确信工程中没有用到打开文件这一环节,因此这个可能是排除掉了。
用lsof -p [进程ID] 可以看到某ID的打开文件状况。进程ID可能用 ps -ef|grep java列出weblogic的进程ID,然后用此ID套入lsof -p ID号,咳,一大堆的请求哟,这显然是网络请求过多造成了 Too many open files。适当调整后便已消除这种现象。
7:Connection reset by peer: socket write error
转自:http://blog.csdn.net/zangpuu/article/details/6618927
常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:
①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
②:客户关掉了浏览器,而服务器还在给客户端发送数据;
③:浏览器端按了Stop
通常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭 (参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中 断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。
但是如果频繁出现,就表示很 多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。
8:Could not get a resource from the pool
1:客户端去redis服务器拿连接(代码描述的是租用对象borrowObject)的时候,池中无可用连接,即池中所有连接被占用,且在等待时候设定的超时时间后还没拿到时,报出此异常。
2: 有redis没连上
9:java.lang.NoClassDefFoundError: org/aspectj/weaver/BCException
少aspectjweaver.jar的缘故。
<groupId> org.aspectj</groupId >
<artifactId> aspectjweaver</artifactId >
<version> 1.6.11</version >
</dependency>
10:Software caused connection abort: recv failed(不过测试时连接成功,返回还是0)
已知会导致这种异常的一个场景如下:
客户端和服务端建立tcp的短连接,每次客户端发送一次请求,
服务端响应后关闭与客户端的连接.
如果客户端在服务端关闭连接后,没有释放连接,继续试图发送请求和接收响应.
这个时候就会出错.
这个时候客户端Socket的getOutputStream返回来的OutPutStream维护
的是本地的连接状态,
无法知道远程的服务端已经关闭了对应的InputStream和socket因此
虽然调用了
out.write(sendbuf, 0, sendbuf.length);
方法,但是实际上服务端并没有接收到客户端的请求信息.
因为没有抛出异常,因此造成了误以为客户端请求发送成功的假象.
接下来调用etInputStream的in.read(header, 0, 14);方法.
因为这次要读取服务端的信息,因此产生了
Software caused connection abort: recv failed 的异常
总结产生原因,在服务端/客户端单方面关闭连接的情况下,另一方依然以为
tcp连接仍然建立,试图读取对方的响应数据,导致出现
Software caused connection abort: recv failed 的异常.
因此在receive数据之前,要先判断连接状态.
通过inputstream的available()方法来判断,是否有响应结果.
如果available()的返回值为0,说明没有响应数据,可能是对方已经断开连接,
如果available()的返回值大于0,说明有响应数据.
另外值得注意的是available()返回的值是非堵塞的,可以被多个线程访问
在对方释放连接后,也要释放本地的连接.
11:NoSuchMethodException a <init>(kafka.utils.VerifiableProperties)
初始化时没有在a中找到以参数为verifiableproperties的构造方法,须要自己创建即可
12: java.io.EOFException: No content to map to Object due to end of input
13:访问https时httpclient忽略证书
builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
builder.build());
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(
sslsf).build();
HttpGet httpGet = new HttpGet("https://some-server");
CloseableHttpResponse response = httpclient.execute(httpGet);
try {
System.out.println(response.getStatusLine());
HttpEntity entity = response.getEntity();
EntityUtils.consume(entity);
}
finally {
response.close();
}
14:tomcat下java.io.NotSerializableException异常的解决方法
方法2:tomcat的Context.xml中加入如下配置
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="false"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
相关推荐
"java10.30哈哈哈哈"这个标题可能是指在2018年10月30日发布的Java版本,因为Java通常以日期作为版本号的一部分。然而,由于没有提供具体的版本信息,我们只能推测。 Java语言的特点包括: 1. **跨平台性**:通过...
4. **异常处理**:理解如何使用try-catch-finally语句捕获和处理异常,以及不同类型的异常类。 5. **输入/输出流**:学习如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等进行文件...
10. **异常处理**:良好的异常处理机制可以提高程序的健壮性,防止因网络问题或其他异常情况导致程序崩溃。 总的来说,Java聊天室项目涉及了Java网络编程、多线程、数据传输、用户交互等多个核心知识点,对于初学者...
《Java2参考大全》是Java编程领域的一本经典著作,尤其在第四版中,它为读者提供了详尽的Java 2平台技术指南。这本书旨在帮助Java开发者深入理解语言特性和API,同时也为初学者提供了全面的学习路径。第四版的更新...
6. **Java基础知识**:这包括异常处理、反射、注解、泛型等。在"哈哈钱包工具"中,这些基础特性可能被巧妙地整合,为开发者提供便利。 总结来说,"哈哈钱包工具"是一个综合性的工具类库,它利用了Java的各种特性和...
2. API参考:详尽地列出了所有ArcObjects的类、接口和方法,包括参数说明、返回值、异常信息等,是查阅API功能的主要依据。 3. 示例代码注解:对每个示例代码的功能、使用场景和实现步骤进行解释,帮助开发者理解和...
4. Java异常处理:如何正确捕获和处理异常,提高程序的健壮性。 5. Java API:介绍标准库中的类和方法,如IO流、日期时间处理等。 6. 示例代码:提供实际的代码示例,帮助理解理论知识。 7. 项目实践:可能包含一些...
4. **异常处理**:Java的异常处理机制有助于编写健壮的代码,防止程序因错误而崩溃。笔记会介绍异常的分类、捕获和抛出机制,以及如何编写自定义异常。 5. **输入/输出流**:Java的I/O流用于数据的读写操作,包括...
在这个项目中,开发者会接触到JAVA的基础语法、类和对象的创建、异常处理以及IO流操作。 2. **Servlet与JSP**:在Web开发中,Servlet用于处理HTTP请求,而JSP则用于生成动态网页内容。在这个系统中,Servlet负责...
总的来说,"KT.rar_kt java"中的"KT.java"文件可能包含了丰富的Java编程知识,包括但不限于类结构、异常处理、条件判断等。通过解压缩并阅读这个文件,我们可以更深入地了解其中的具体实现和编程思路。在学习过程中...
【标题】"计算器(Java)"的实现是一个...通过这个计算器项目,学习者不仅可以巩固Java基础知识,还能了解面向对象设计、用户交互处理、异常管理以及程序打包等进阶概念,对于提升编程技能和理解软件工程流程大有裨益。
Java编程语言的学习是一个深入理解其基础技术的过程,其中包括对关键字、异常处理、内存管理、类与接口、逻辑运算以及集合框架等多个方面的掌握。在本文中,我们将深入探讨这些关键概念。 首先,`final`关键字在...
- 异常处理:掌握try-catch-finally结构,了解不同类型的异常,如IOException、NullPointerException等。 - 数据类型:深入理解基本数据类型与引用数据类型,以及自动装箱拆箱的概念。 2. **内存管理** - 垃圾...
2. **智能分析**:IDEA内置的静态代码分析工具能够检测代码中的潜在问题,如未使用的变量、过时的方法、空指针异常等,并提供快速修复建议。 3. **重构工具**:IDEA的重构功能强大,支持包括重命名、提取方法、移动...
描述中的"好好学习,哈哈"更进一步暗示了这是为了帮助Java初学者或进阶者提升技能准备的。 Java的学习通常涵盖以下几个关键部分: 1. **基础概念**:Java的基础包括语法、数据类型、变量、运算符、流程控制(如if...
### Java中main()方法浅析 #### 一、概述 在Java编程语言中,`main()`方法具有特殊的意义,它是所有Java应用程序的起点。当Java虚拟机(JVM)启动并加载了一个包含`main()`方法的类时,它会自动调用这个方法来开始...
描述中的“功能大全简单好用清晰明了谁用谁知道哈哈哈”表明这是一个易用、功能丰富的Java工具或库。 在Java领域,有许多方面可以涉及“功能大全”,这可能包括但不限于: 1. **基础语法**:Java语言的基础,如...
这些题目可能会覆盖Java的基础语法、面向对象编程概念、类与对象、异常处理、集合框架、IO流、多线程、网络编程、数据库连接等各个方面。 通过解答这些课后习题,学习者能够深化对Java语言的理解,熟悉其核心概念和...
3. **异常处理**:Java的异常处理机制是其强大的特点之一,通过try-catch-finally语句块来捕获和处理运行时错误,确保程序的健壮性。 4. **集合框架**:Java集合框架包括ArrayList、LinkedList、HashSet、HashMap等...