- 浏览: 294654 次
- 性别:
- 来自: 北京
-
最新评论
-
liwei985:
xiaoy81 写道putIfAbsent是原子性的,多线程去 ...
ConcurrentMap.putIfAbsent(key,value) 用法讨论 -
xiaoy81:
putIfAbsent是原子性的,多线程去操作Locale l ...
ConcurrentMap.putIfAbsent(key,value) 用法讨论 -
DEMONU:
楼主找到撒原因了吗
故障:Kafka异步发送致使所有相关线程阻塞 -
wxl24life:
aliahhqcheng 写道觉得接口常量和工具类常量比较,唯 ...
ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式 -
aliahhqcheng:
觉得接口常量和工具类常量比较,唯一的好处就是不用写public ...
ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
文章列表
今天被问了一个 Java 基础知识:Java 类成员的访问控制符(Access Modifier)有几种?这些访问控制符之间有何区别?
首先回答第一个问题。通常我们可以显示声明的访问控制符有三个:public, private 和 protected。但是,我们也会 ...
刚才在测试一段代码时碰到了 java.lang.ExceptionInInitializerError。
简单搜了下资料,这个 error 出现的原因是:在静态初始化块(static initializer,包含静态变量初始化语句)中有 unchecked exception 抛出而没有被捕获住。
借助 java doc 文档 中的介绍,记录几个要点。
1、首先,它是一个 error,继承自 java.lang.Error。java.lang.ExceptionInInitializerError 的命名符合 java 规范 - 以 Error 结尾。
java.l ...
先看两段代码,请试着分别写出它们的输出结果。
1、try-catch 块与 finally 块同时抛异常。
import java.io.IOException;
public class ExceptionInFinallyBlock {
public static void main(String[] args) {
try {
try {
System.out.print("A");
throw new Exception(&q ...
这个错误是在SVN提交的时候报的:
写道
Transaction is out of date svn: Commit failed (details follow)...
解决办法: Team -> SVN update(更新)
这里可以对整个工程执行一次 SVN update。
参考:SO
在上一篇文章里,我写了在阅读 ActiveMQ 的一小段源码时碰到的两种设计模式:抽象工厂和策略模式。实际上 ActiveMQ 源码量很大,只要认真分析,你会找到很多设计模式的应用场景。其中,有一个模式非常典型,并且它在整个 ActiveMQ 的源码架构中扮演者非常重要的角色,它就是 GoF 设计模式中的:命令模式(Command Pattern)。Command 是 ActiveMQ broker 与 client 的主要通信方式,每个 Command 对象代表了一个待执行的动作。关于命令模式在 ActiveMQ 源码中的应用,我会在后面找个时间专门写一下。
这篇文章讨论另一个问题 ...
今天主要分析两个类的实现。
首先看一下 org.apache.activemq.broker.BrokerFactory 类。从类的命名上看似乎使用了 GoF 设计模式中的抽象工厂模式。我们通过源码来分析一下是否真的应用了这种模式。
public final class BrokerFactory {
// ...
public static BrokerService createBroker(URI brokerURI, boolean startBroker) throws Exception {
if (brokerURI ...
在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Field 分为两种:
static field:也称作 class variable,这种 filed 属于 class,并不属于单个 instance,所有该 class 的 intance 共享内存中的同一份 class field。
non-static field:也称作 instance variable,它属于每一个具体的 instance,class 的每一个 instan ...
今晚按照这篇向导 Turning Vim into a modern Python IDE,对 Vim 装饰了一番,作为以后开发 Python 代码的 IDE。
先上效果图:
这张图里用到的插件有(所有快捷键适应于默认的 .vimrc 配置下):
Gundo 用于查看本地文件修 ...
这是前几天碰到的一个由 SLF4J 引发的异常
Exception in thread "main" java.lang.IllegalAccessError: tried to access field
org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
在网上搜索时,找到了 SLF4J FAQ 这篇文档,其中就有对这 ...
以下内容主要参考 SLF4J FAQ 文档。只用于记录我的一点理解,如有必要请仔细阅读 FAQ 文档。
1. 什么是 SLF4J?
SLF4J is a simple facade for logging systems allowing the end-user to plug-in the desired logging system at deployment time.
要理解这句话需要先弄懂几个概念:
facade. 它实际上是 GoF 设计模式中的 Facade 模式,中文是外观模式。该模式通过一个 Facade 对象为一系列复杂的对象提供简化 ...
java.lang.NoClassDefFoundError 和 java.lang.ClassNotFoundException 都是 Java 语言定义的标准异常。从异常类的名称看似乎都跟类的定义找不到有关,但是还是有些差异。我们先来看一下 java 规范中对这两个异常的说明:
java.lang.NoClassDefFoundError:
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a ...
在两个地方可以配置 persistent 属性,分别是broker端和client端。
broker端配置文件里的 broker 对象属性中有一个 persistent 属性,该属性的默认值是 true。
在默认属性 true 的前提下,如果希望以 non-persistent 的方式传输消息,需要在 client(producer)端指定 DeliveryMode. NON_PERSISTENT。
如果 broker 端把 persistent 属性设置为 false,不管 client(producer)端使用哪种 DeliveryMode,都不无法保证消息的持久化 ...
本文的目的是在 broker 端实现消息的路由分发,通俗点讲就是,根据消息的特征将消息分发到不同的 queue 或者 topic 上。要实现消息路由,最简单的方式是在 activemq 提供的 xml 配置文件下面构建路由规则。
所使用的版本:
ActiveMQ 5.6.0
Camel 2.9.2
在 ActiveMQ 的每个发行版的 conf 目录下包含了很多的示例 xml 配置文件,它们是对 ActiveMQ 重要 feature 的配置举例,比如使用jdbc作持久化机制时针对不同数据库的配置、如何进行权限配置、如何配置 network broker 等等。在研究Ac ...
错误堆栈信息如下所示。url 出于隐私没有列出,但是可以肯定的是 jdbc url 配置信息正确无误。
从错误描述 Apparently wrong driver class specified for URL 看,应该是jdbc driver的问题 。
简单在网上搜了下这个错误,尝试将 oracle 的 jdbc driver JAR 包放在了Jboss deploy目录上一层的lib目录下,再次启动 jboss,问题解决。
org.jboss.resource.JBossResourceException: Could not create connect ...
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \******\TEST.java:[15,29] 软件包 org.jboss.ws.tools.ant 不存在
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ---------------------------- ...