- 浏览: 3566031 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
import org.apache.log4j.Logger;
public class ClientConfig
{
private static final String UDDI_CONFIG_FILENAME_PROPERTY = "uddi.client.xml";
public static final String DEFAULT_UDDI_CONFIG = "META-INF/uddi.xml";
private Logger log = Logger.getLogger(ClientConfig.class);
private Configuration config = null;
private Map<String, UDDINode> uddiNodes = null;
private Map<String, UDDIClerk> uddiClerks = null;
private Set<XRegistration> xBusinessRegistrations = null;
private Set<XRegistration> xServiceBindingRegistrations = null;
private String managerName = null;
public ClientConfig(String configurationFile)
throws ConfigurationException
{
loadConfiguration(configurationFile);
}
protected void loadManager() throws ConfigurationException {
this.uddiNodes = readNodeConfig(this.config);
this.uddiClerks = readClerkConfig(this.config, this.uddiNodes);
this.xServiceBindingRegistrations = readXServiceBindingRegConfig(this.config, this.uddiClerks);
this.xBusinessRegistrations = readXBusinessRegConfig(this.config, this.uddiClerks);
}
private void loadConfiguration(String configurationFile)
throws ConfigurationException
{
CompositeConfiguration compositeConfig = new CompositeConfiguration();
compositeConfig.addConfiguration(new SystemConfiguration());
XMLConfiguration xmlConfig = null;
if (configurationFile != null) {
xmlConfig = new XMLConfiguration(configurationFile);
} else {
String filename = System.getProperty("uddi.client.xml");
if (filename != null)
xmlConfig = new XMLConfiguration(filename);
else {
xmlConfig = new XMLConfiguration("META-INF/uddi.xml");
}
}
this.log.info("Reading UDDI Client properties file " + xmlConfig.getBasePath());
long refreshDelay = xmlConfig.getLong("reloadDelay", 1000L);
this.log.debug("Setting refreshDelay to " + refreshDelay);
FileChangedReloadingStrategy fileChangedReloadingStrategy = new FileChangedReloadingStrategy();
fileChangedReloadingStrategy.setRefreshDelay(refreshDelay);
xmlConfig.setReloadingStrategy(fileChangedReloadingStrategy);
compositeConfig.addConfiguration(xmlConfig);
this.config = compositeConfig;
loadManager();
}
private Map<String, UDDIClerk> readClerkConfig(Configuration config, Map<String, UDDINode> uddiNodes) throws ConfigurationException
{
this.managerName = config.getString("manager[@name]");
Map clerks = new HashMap();
if (config.containsKey("manager.clerks.clerk[@name]")) {
String[] names = config.getStringArray("manager.clerks.clerk[@name]");
this.log.debug("clerk names=" + names);
for (int i = 0; i < names.length; i++) {
UDDIClerk uddiClerk = new UDDIClerk();
uddiClerk.setManagerName(this.managerName);
uddiClerk.setName(config.getString("manager.clerks.clerk(" + i + ")[@name]"));
String nodeRef = config.getString("manager.clerks.clerk(" + i + ")[@node]");
if (!uddiNodes.containsKey(nodeRef)) throw new ConfigurationException("Could not find Node with name=" + nodeRef);
UDDINode uddiNode = (UDDINode)uddiNodes.get(nodeRef);
uddiClerk.setUDDINode(uddiNode);
uddiClerk.setPublisher(config.getString("manager.clerks.clerk(" + i + ")[@publisher]"));
uddiClerk.setPassword(config.getString("manager.clerks.clerk(" + i + ")[@password]"));
String[] classes = config.getStringArray("manager.clerks.clerk(" + i + ").class");
uddiClerk.setClassWithAnnotations(classes);
clerks.put(names[i], uddiClerk);
}
}
return clerks;
}
public boolean isRegisterOnStartup() {
boolean isRegisterOnStartup = false;
if (this.config.containsKey("manager.clerks[@registerOnStartup]")) {
isRegisterOnStartup = this.config.getBoolean("manager.clerks[@registerOnStartup]");
}
return isRegisterOnStartup;
}
private Map<String, UDDINode> readNodeConfig(Configuration config) throws ConfigurationException
{
String[] names = config.getStringArray("manager.nodes.node.name");
Map nodes = new HashMap();
this.log.debug("node names=" + names);
for (int i = 0; i < names.length; i++) {
UDDINode uddiNode = new UDDINode();
String nodeName = config.getString("manager.nodes.node(" + i + ").name");
String[] propertyKeys = config.getStringArray("manager.nodes.node(" + i + ").properties.property[@name]");
Properties properties = null;
if ((propertyKeys != null) && (propertyKeys.length > 0)) {
properties = new Properties();
for (int p = 0; p < propertyKeys.length; p++) {
String name = config.getString("manager.nodes.node(" + i + ").properties.property(" + p + ")[@name]");
String value = config.getString("manager.nodes.node(" + i + ").properties.property(" + p + ")[@value]");
this.log.debug("Property: name=" + name + " value=" + value);
properties.put(name, value);
}
uddiNode.setProperties(properties);
}
uddiNode.setHomeJUDDI(config.getBoolean("manager.nodes.node(" + i + ")[@isHomeJUDDI]", false));
uddiNode.setName(config.getString("manager.nodes.node(" + i + ").name"));
uddiNode.setManagerName(config.getString("manager[@name]"));
uddiNode.setDescription(config.getString("manager.nodes.node(" + i + ").description"));
uddiNode.setProxyTransport(config.getString("manager.nodes.node(" + i + ").proxyTransport"));
uddiNode.setInquiryUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").inquiryUrl"), properties));
uddiNode.setPublishUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").publishUrl"), properties));
uddiNode.setCustodyTransferUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").custodyTransferUrl"), properties));
uddiNode.setSecurityUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").securityUrl"), properties));
uddiNode.setSubscriptionUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").subscriptionUrl"), properties));
uddiNode.setSubscriptionListenerUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").subscriptionListenerUrl"), properties));
uddiNode.setJuddiApiUrl(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").juddiApiUrl"), properties));
uddiNode.setFactoryInitial(config.getString("manager.nodes.node(" + i + ").javaNamingFactoryInitial"));
uddiNode.setFactoryURLPkgs(config.getString("manager.nodes.node(" + i + ").javaNamingFactoryUrlPkgs"));
uddiNode.setFactoryNamingProvider(TokenResolver.replaceTokens(config.getString("manager.nodes.node(" + i + ").javaNamingProviderUrl"), properties));
nodes.put(nodeName, uddiNode);
}
return nodes;
}
private Set<XRegistration> readXBusinessRegConfig(Configuration config, Map<String, UDDIClerk> clerks) throws ConfigurationException
{
return readXRegConfig(config, clerks, "business");
}
private Set<XRegistration> readXServiceBindingRegConfig(Configuration config, Map<String, UDDIClerk> clerks) throws ConfigurationException
{
return readXRegConfig(config, clerks, "servicebinding");
}
private Set<XRegistration> readXRegConfig(Configuration config, Map<String, UDDIClerk> clerks, String entityType) throws ConfigurationException
{
String[] entityKeys = config.getStringArray("manager.clerks.xregister." + entityType + "[@entityKey]");
Set xRegistrations = new HashSet();
this.log.info("XRegistration " + entityKeys.length + " " + entityType + "Keys");
for (int i = 0; i < entityKeys.length; i++) {
XRegistration xRegistration = new XRegistration();
xRegistration.setEntityKey(config.getString("manager.clerks.xregister." + entityType + "(" + i + ")[@entityKey]"));
String fromClerkRef = config.getString("manager.clerks.xregister." + entityType + "(" + i + ")[@fromClerk]");
if (!clerks.containsKey(fromClerkRef)) throw new ConfigurationException("Could not find fromClerk with name=" + fromClerkRef);
UDDIClerk fromClerk = (UDDIClerk)clerks.get(fromClerkRef);
xRegistration.setFromClerk(fromClerk);
String toClerkRef = config.getString("manager.clerks.xregister." + entityType + "(" + i + ")[@toClerk]");
if (!clerks.containsKey(toClerkRef)) throw new ConfigurationException("Could not find toClerk with name=" + toClerkRef);
UDDIClerk toClerk = (UDDIClerk)clerks.get(toClerkRef);
xRegistration.setToClerk(toClerk);
this.log.info(xRegistration);
xRegistrations.add(xRegistration);
}
return xRegistrations;
}
protected Map<String, UDDINode> getUDDINodes() {
return this.uddiNodes;
}
public UDDINode getHomeNode() throws ConfigurationException {
if (this.uddiNodes == null) throw new ConfigurationException("The juddi client configuration must contain at least one node element.");
if (this.uddiNodes.values().size() == 1) return (UDDINode)this.uddiNodes.values().iterator().next();
for (UDDINode uddiNode : this.uddiNodes.values()) {
if (uddiNode.isHomeJUDDI()) {
return uddiNode;
}
}
throw new ConfigurationException("One of the node elements in the client configuration needs to a 'isHomeJUDDI=\"true\"' attribute.");
}
public UDDINode getUDDINode(String nodeName) throws ConfigurationException {
if (!this.uddiNodes.containsKey(nodeName)) {
throw new ConfigurationException("Node '" + nodeName + "' cannot be found in the config '" + getManagerName() + "'");
}
return (UDDINode)this.uddiNodes.get(nodeName);
}
public Map<String, UDDIClerk> getUDDIClerks() {
return this.uddiClerks;
}
public Set<XRegistration> getXServiceBindingRegistrations() {
return this.xServiceBindingRegistrations;
}
public Set<XRegistration> getXBusinessRegistrations() {
return this.xBusinessRegistrations;
}
public Configuration getConfiguration() {
return this.config;
}
public String getManagerName() {
return this.managerName;
}
}
相关推荐
标题“log4j.rar log4j使用方法”暗示了我们要讨论的是一个关于log4j日志框架的压缩包文件,其中包含了如何使用log4j的指导资料。log4j是Java编程语言中广泛使用的开源日志记录工具,它允许开发者灵活地控制日志信息...
log4j使用方法 1、Log4j是什么? 2、Log4j的概念 3、Log4j的配置文件 4、Log4j在程序中的使用
而Log4j2需要import org.apache.logging.log4j.Level、org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger,使用LogManager.getLogger()方法获取日志记录器。 Log4j和Log4j2都是常用的日志记录...
### LOG4J使用方法详解 #### 一、Log4j简介 Log4j是一个开源的日志框架,由Apache Software Foundation开发。它允许开发者根据等级记录日志信息,并且能够自由控制日志信息输出的目的地与格式。这使得Log4j在处理...
9. **Layouts的广泛适用性**:Log4j2的Layouts不仅可以应用于使用`OutputStream`写入日志的Appender,还可以应用于所有类型的Appender。 10. **优化的并发支持**:Log4j2利用Java 5提供的并发特性,能够在较低级别...
**日志框架Log4j详解** Log4j是Apache组织提供的一款开源的日志记录工具,广泛应用于Java开发中。...通过阅读提供的"log4j使用方法"文档,你将能更深入地了解Log4j的配置和使用技巧,为你的开发工作带来便利。
本文将深入探讨Log4j的基本概念、配置与使用方法。 1. **什么是Log4j** Log4j是一个基于Java的日志记录工具,它提供了灵活的控制来记录日志信息,包括日志级别(DEBUG、INFO、WARN、ERROR、FATAL)、日志输出格式...
这篇文档将详细介绍Log4j的使用方法和配置,帮助你掌握如何有效地管理和控制日志输出。 首先,了解日志的重要性是至关重要的。日志可以帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。相比于直接使用`...
Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...
### Log4J用法详解与操作手册概览 #### Log4J框架概述 Log4J是一种功能强大且灵活的Java日志记录框架,由Apache软件基金会的Jakarta项目开发并维护,采用Apache Software License许可发布。该框架的核心设计原则...
3. **使用SLF4J接口**:在Java代码中,通过SLF4J的LoggerFactory获取Logger对象,然后调用相应的日志方法。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestClass ...
- `log4j-1.2.14.jar`: 这是Log4j 1.2.14版本的jar包,包含了Log4j的全部类和方法,是使用Log4j进行日志记录的核心组件。 - `commons-logging-1.0.4.jar`: 这是Apache Commons Logging库,它是Java日志API的一个抽象...
**标题与描述解析** 标题提及的是"log4j-API-最新稳定版本log4j-1.2.17",这表明我们关注的是日志框架...对于使用Log4j的开发者来说,理解和掌握API的各个方面至关重要,以实现有效的日志管理并优化应用程序的监控。
### Log4j 使用方法详解 #### 一、Log4j简介 Log4j是一个非常强大的日志记录工具,被广泛应用于Java开发中的日志管理。它具有灵活性强、配置简单等特点,能够帮助开发者轻松地记录应用程序运行过程中的各种信息。 ...
Log4j是Java编程语言中广泛使用的日志记录框架,特别是在企业级应用和大型系统中。这个"**log4j-2.17.1**"的版本是该框架的一个更新,提供了修复的安全漏洞和性能优化。以下是关于Log4j 2.17.1的一些关键知识点: 1...
这个“log4j示例项目”旨在帮助开发者理解和使用Log4j,通过该项目,我们可以深入学习Log4j的配置、使用方法以及其在实际开发中的应用。 **1. Log4j的组成部分** Log4j主要包括三个核心组件:Logger(日志器)、...
### Log4j配置与加载方法详解 Log4j是一款由Apache出品的日志记录工具,它提供了灵活的日志级别控制和多样化的日志输出方式,广泛应用于Java应用的开发中。本文将深入解析log4j的配置与加载机制,帮助开发者更好地...
本文将详细解析Log4j 1.2.15.jar这个版本的核心概念、使用方法以及重要特性。 一、Log4j简介 Log4j是由Apache软件基金会开发的一个开源日志组件,主要为Java应用程序提供日志服务。它的设计理念是让日志输出变得...
赠送jar包:log4j-to-slf4j-2.17.1.jar; 赠送原API文档:log4j-to-slf4j-2.17.1-javadoc.jar; 赠送源代码:log4j-to-slf4j-2.17.1-sources.jar; 赠送Maven依赖信息文件:log4j-to-slf4j-2.17.1.pom; 包含翻译后...
在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...