
JAVA学习实践及问题记录
文章平均质量分 54
JAVA学习实践过程中一些功能实现方法的记录,以及在学习过程中遇到的种种问题、Bug的解决方案的记录,希望与大家共同学习,共同进步。
普通网友
这个作者很懒,什么都没留下…
展开
-
Failed to connect to remote VM. Connection refused. Connection refused: connect
在使用Eclipse的远程调试功能,启动调试时提示以下信息:Failed to connect to remote VM. Connection refused. Connection refused: connect如图: 这是因为Tomcat还没有启动,或者是没有以Debug模式启动。原创 2015-05-23 10:56:28 · 33652 阅读 · 6 评论 -
The project was not built due to "Could not delete ''.". Fix the problem, then try refreshing this p
Eclipse修改完Java类文件保存之后,项目上出现了错误提示,如图: 但是项目的文件都没有提示错误, 打开Problems窗口会看到具体的错误信息: The project was not built due to “Could not delete ”.”. Fix the problem, then try refreshing this project and building原创 2015-05-23 15:48:14 · 25786 阅读 · 17 评论 -
java.io.IOException: invalid header field
Tomcat启动时出现以下错误:24-May-2015 14:15:47.703 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException:原创 2015-05-24 14:43:07 · 15010 阅读 · 2 评论 -
org.apache.tomcat.util.bcel.classfile.ClassFormatException: It is not a Java .class file
Tomcat启动时输出以下错误:24-May-2015 14:47:07.441 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsJar Unable to process Jar entry [com/auth/spring/listener/SpringLoade原创 2015-05-24 15:04:34 · 23369 阅读 · 8 评论 -
Referenced file contains errors (http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_4.xsd).
项目导入后,一个tld文件提示以下错误:Referenced file contains errors (http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_4.xsd). For more information, right click on the message in the Problems View and select “Show原创 2015-05-24 16:18:25 · 13888 阅读 · 2 评论 -
CentOS 6.5下安装JDK 1.8,编写HelloWorld测试
CentOS 6.5下安装JDK 1.8,编写HelloWorld测试下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html参考:如何从官方网站下载jdk1.7?安装现在的版本安装其实非常简单,一条命令就搞定了: rpm -ivh jdk-8u92-linux-x64.rpm原创 2016-06-04 10:53:17 · 3530 阅读 · 2 评论 -
Spring MVC 基于阻塞队列 LinkedBlockingQueue 的同步长轮询功能实现
标题 Spring MVC 基于阻塞队列 LinkedBlockingQueue 的同步长轮询功能实现,其实本文介绍的也是生产者消费者的一种实现。生产者不必是一个始终在执行的线程,它可以是一个接口,接受客户端的请求,向队列中插入消息;消费者也不必是一个始终在执行的线程,它同样也可以是一个接口,接受客户端的请求,从队列中取出属于自己的消息;看到很多介绍生产者消息者实现的文章,实现场景都很简单,现实原创 2017-09-01 08:11:16 · 9174 阅读 · 0 评论 -
MyBatis Generator(MBG)PostgreSQL使用说明 区分大小写敏感
PostgreSQL使用说明区分大小写敏感PostgreSQL对所有数据库标识符(表名,模式名,列名等)区分大小写。此外,PostgreSQL对所有小写字母的所有标识符都有不同的偏好。如果您使用PostgreSQL的所有小写标识符,那么MyBatis Generator将找到表并写入正确的SQL,而无需额外考虑。如果您使用混合的套件或大写标识符,则需要适当地配置MyBatis Generator:翻译 2017-09-07 10:17:38 · 5619 阅读 · 1 评论 -
MyBatis Generator(MBG)其他参考信息
参考信息本节使用MyBatis Generator收集与技术主题相关的实用信息。从源码构建扩展MyBatis生成器实现插件记录信息提供的插件设计哲学原文:Reference Information翻译 2017-09-07 11:02:48 · 713 阅读 · 0 评论 -
Mybatis Generator最完整配置详解
注:虽然这篇号称是最完整配置详解,还是有不足不处!请对照参考另一篇:MyBatis Generator 详解同学们有福了,花了一些时间,重新整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,带详解,再也不用去看EN的User Guide了;<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE gener...转载 2017-09-07 21:26:06 · 44044 阅读 · 5 评论 -
从源码构建 MyBatis Generator(MBG)
从源码构建所有MyBatis Generator(MBG)发行版包括源代码,唯一的编译时间依赖关系在ant.jar上 - 用于成功编译包含的Ant任务。直接从源代码编译MBG - 只需将源解压缩到一个分发中,然后用你最喜欢的工具编译它。MBG分发不包含在构建过程中运行的测试,也不包含作为构建的必要部分的其他类。如果您想检查这些类,或者从GitHub的最新版本的源代码构建MBG,请按照下列步翻译 2017-09-09 20:56:55 · 1039 阅读 · 0 评论 -
MyBatis Generator(MBG)设计哲学与致歉
设计哲学与致歉这个工具可能会引发一些哲学问题,因为该工具更注重数据库表而不是域模型。我们将采取几段谈论这种方法。首先,这个工具可以做到这一点。我们没有就项目应该或不应该结构化做出任何形式的陈述。一般来说,我们是富有领域模型的坚强支持者 - 但创建一个丰富的领域模型与回答这个模式应该如何坚持的问题是截然不同的。如果您的特定设计理念是域模型驱动所有决策,并且数据库设计服从于域模型,则此工具 - 和My翻译 2017-09-09 20:58:19 · 803 阅读 · 0 评论 -
ConcurrentHashMap总结
原文出处: Hosee摘要: 本文主要参考网上Blog(详见Reference)总结ConcurrentHashMap的各方面知识,方便复习并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一转载 2017-09-13 18:16:44 · 2397 阅读 · 0 评论 -
Java集合---ConcurrentHashMap原理分析
原文:Java集合---ConcurrentHashMap原理分析集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap转载 2017-09-13 18:16:12 · 634 阅读 · 0 评论 -
MyBatis Generator(MBG)扩展MyBatis生成器
扩展MyBatis生成器MyBatis Generator(MBG)是为扩展性设计的。使用Java和XML元素的简单DOM表示来执行所有代码生成。Java DOM包含在包org.mybatis.generator.api.dom.java中XML DOM包含在包org.mybatis.generator.api.dom.xml中这些类对于每种可能的代码生成可能性都不够,但它们对于生成简单到中等复杂翻译 2017-09-14 12:40:27 · 2459 阅读 · 0 评论 -
MyBatis Generator(MBG)实现插件
实现插件插件可用于修改或添加到MyBatis Generator生成的对象。插件必须实现接口org.mybatis.generator.api.Plugin。插件接口包含许多在代码生成过程的不同阶段调用的方法。对于任何特定的插件,通常不需要实现整个接口。因此,大多数插件都应该扩展适配器类org.mybatis.generator.api.PluginAdapter。适配器类提供基本的插件支持,并为翻译 2017-09-14 12:52:34 · 2487 阅读 · 0 评论 -
MyBatis Generator(MBG)日志信息
日志信息MyBatis Generator(MBG)以几种不同的方式报告记录信息:MBG可以在每次运行时生成和显示警告消息。这些消息旨在通知用户可能或可能不需要注意的重大事件。示例是被覆盖的文件,非致命的配置错误等。始终显示警告 - 无论配置或命令行选项如何。每次运行时,MBG都会生成并显示进度消息,也可能不会显示进度消息。这些消息旨在向用户通知代码生成中的进度。默认情况下不显示这些消息,但可以翻译 2017-09-14 12:58:10 · 2385 阅读 · 0 评论 -
MyBatis Generator(MBG)提供的插件
提供的插件随着MyBatis Generator(MBG)的使用日益增长,我们发现通过插件增加功能越来越有用,而不是增加基础代码生成器的复杂性。插件是一种模块化且易于理解的用于扩展MBG的机制。有关编写插件的更多信息,请参阅实现插件。有关配置插件的信息,请参阅提供的插件都在包org.mybatis.generator.plugins中。提供的插件展示了可以使用MBG插件完成的不同类型的任务。插件的翻译 2017-09-14 13:03:01 · 1541 阅读 · 0 评论 -
元素 "tx:annotation-driven" 的前缀 "tx" 未绑定
在配置 /projectName/src/main/resources/spring-mybatis.xml 文件添加以下内容, <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 开启事务注解驱动,启动 T原创 2017-09-20 14:56:31 · 5637 阅读 · 0 评论 -
Java 关于获取webapp路径问题
1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:\eclipseM9\workspace\tree\ tree是我web项目的根目录 2.你也可以随时在任意的class里调用 this.getClass().getClassLoader().getResourc转载 2017-09-21 09:28:50 · 30886 阅读 · 2 评论 -
java.lang.IllegalMonitorStateException
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0080e1}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #ff2600}span.s1 {text-decoration: underline}span.s2 {te原创 2017-09-22 12:34:00 · 1472 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。转载 2017-09-25 12:59:20 · 570 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了Blockin转载 2017-09-25 13:00:47 · 19655 阅读 · 7 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同一代码,转载 2017-09-25 13:02:07 · 625 阅读 · 0 评论 -
理解Callable 和 Spring DeferredResult(翻译)
1-介绍Servlet 3中的异步支持为在另一个线程中处理HTTP请求提供了可能性。当有一个长时间运行的任务时,这是特别有趣的,因为当另一个线程处理这个请求时,容器线程被释放,并且可以继续为其他请求服务。这个主题已经解释了很多次,Spring框架提供的关于这个功能的类似乎有一点混乱——在一个Controller中返回Callable 和 DeferredResult。在这篇文章中,我将实施这两个例转载 2017-09-25 13:03:51 · 1833 阅读 · 0 评论 -
conflicts with existing, non-compatible bean definition of same name and class
使用 Idea CE 创建的 Maven Web 项目,启动时却输出以下错误:Connected to the target VM, address: '127.0.0.1:52165', transport: 'socket' . ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \(...原创 2017-09-26 11:47:32 · 32477 阅读 · 5 评论 -
Spring Boot Controller 无法访问 type=Not Found, status=404
Spring Boot 项目启动日志2017-09-26 14:23:08.443 INFO 3543 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.Annotatio原创 2017-09-26 14:28:08 · 9185 阅读 · 3 评论 -
使用Eclipse中提供的Refactor(重构)工具提取接口
最近用到网络编程方面的知识,在网上看到帖子 Java Nio的Socket服务端编写 ,想跑一下提供的代码,但是在 Eclipse 中创建了对应的类,把代码粘贴进去却发现少了一个接口 TCPProtocol 的定义。代码如下:import java.io.IOException;import java.nio.ByteBuffer;import java.nio.channels.Select原创 2017-09-27 16:40:33 · 3341 阅读 · 0 评论 -
spring 配置扫描多个包
spring 配置扫描多个包原创 2017-09-27 17:59:59 · 32358 阅读 · 0 评论 -
错误: 编码GBK的不可映射字符
最近在研究JNI,由于只有一个文件,涉及命令行编译,使用notepad++编辑器,然后使用javac编译;之前的几个文件没有中文的内容,都没有产生错误,这次有中文就产生这样的错误! 解决方案方案一、指定编码javac -encoding utf-8 CommonClassLoader.java方案二、修改文件编码注意当文件是utf-8编码时,不能有BOM,否则也会有错误,如下图:原创 2015-05-20 17:00:25 · 23058 阅读 · 1 评论 -
Java 有包名的类调用没有包名的类
在java中怎样在有名包中引用无名包中的类除非都是没有包名而且在同一个文件夹下的类才能互相引用 不符合这个条件的必须有包名才能被引用原创 2015-05-22 17:58:41 · 6611 阅读 · 2 评论 -
如何让Tomcat以Debug模式启动
有时候我们需要远程调试项目代码,这就需要让Tomcat以Debug模式启动。环境说明Windows 7 64位 JDK 8 64位 tomcat-8.0.21 x64.zip配置方法第一步:配置JPDA参数如果Tomcat使用的是JDK 1.5以上版本,那么JPDA可以使用JVMDI,配置方法为: 在tomcat的bin/catalina.bat文件中一开始加入: set JPDA_OPTS原创 2015-05-23 11:09:46 · 50366 阅读 · 8 评论 -
如何捕获 System.loadLibrary 产生的异常?
如何捕获 System.loadLibrary 产生的异常?当使用以下代码时,会发现异常处理的代码根本不会被执行: try{ System.loadLibrary("SimpleAuthenticator"); }catch(Exception ex){ ex.printStackTrace(); }如何原创 2015-05-23 11:37:10 · 10197 阅读 · 2 评论 -
配置Tomcat以Debug模式启动了,但却只能本地用localhost连接调试
配置Tomcat以Debug模式启动了,但却只能本地用localhost连接调试! 这里只能使用localhost或127.0.0.1, 这是什么原因呢?问题就出在“address=localhost:8000”,如下图: 解决方案:将localhost改为0.0.0.0,如下图:原创 2015-05-23 18:45:24 · 5227 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: 包名.方法名([BLjava
Tomcat启动时,输出如下错误信息:24-May-2015 18:27:39.057 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleExceptio原创 2015-05-24 18:30:29 · 8165 阅读 · 3 评论 -
org.apache.subversion.javahl.ClientException: svn: E155021: This client is too old to work with the
org.apache.subversion.javahl.ClientException: svn: E155021: This client is too old to work with the working copy at产生该错误的原因:由于执行的以下操作,所以产生此错误! 升级TortoiseSVN为TortoiseSVN-1.8.0.24401-x64-svn-1.8.0官方原版升级原创 2015-06-11 12:23:53 · 53064 阅读 · 10 评论 -
java.io.IOException: This archive has already been finished
java.io.IOException: This archive has already been finished at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:406) at com.xunge.AESFileEnc原创 2015-06-15 17:53:12 · 2877 阅读 · 0 评论 -
java.util.zip.DataFormatException: invalid distance too far back
解压 war/jar文件时出现以下错误: java.util.zip.ZipException: invalid distance too far back at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:478)原创 2015-06-17 11:51:59 · 32916 阅读 · 0 评论 -
java.io.IOException: The stream is closed
java.io.IOException: The stream is closed at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.read(ZipArchiveInputStream.java:362) at java.io.InputStream.read(Unknown Source)原创 2015-06-17 11:55:45 · 13459 阅读 · 0 评论 -
23种设计模式全解析
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类转载 2015-07-09 18:02:25 · 5363 阅读 · 4 评论