在J2EE应用开发中,应用所依赖类库是应用开发部署阶段需要考虑的重要因素。由于某些底层类库如Servlet API,JDBC Driver, JTA等已经包含在某些应用服务器中,开发阶段所依赖类库并不一定是运行时所必需的。这个依赖管理增加了复杂度,加上有时对应用的管理不善,经常会遇到在 开发环境正常运行的应用到了生产环境就出现java.lang.ClassNotFoundException或 java.lang.NoClassDefFoundError这样的异常或错误。此时,如果不了解应用的依赖关系,且应用的依赖关系比较复杂,了解某个 具体的class所在位置就显得尤为重要。Java的Clas ...
    补丁Patch是天才程序员、Perl的发明者Larry Wall发明的,它应高效地交流程序源代码之需求而生,随着以Linux为代表的开发源代码运行的蓬勃发展,patch这个概念已经成为开放源代码发起者、贡献者和参与者的集体无意识的一部分。patch只包含了对源代码修改的部分,这对于开放源代码社区的协同开发模式具有重要意义,意味的软件新版本的发布和对软件的缺陷或改进可以以更小的文件发布,可以减少网络的传输量,方便软件维护者的管理工作。patch文件有多种格式,不同平台上所支持的格式不尽相同,但最常见的是context格式和unified格式。context格 ...
  • 16:27
  • 浏览 (674)
  • 评论 (0)
Reading list:Implement business logic with the Drools rules enginehttp://www-128.ibm.com/developerworks/java/library/j-drools/index.html?ca=drs- The Maven 2 POM demystified The evolution of a project modelhttp://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html?ls ...
  • 10:05
  • 浏览 (655)
  • 评论 (0)
在tomcat中部署应用有很多方法,但其中有一种直接拷贝war文件的方法在tomcat 5.5得到了增强。在tomcat 5.5之前的缺省配置,将web应用打包成一个war文件然后拷贝到$CATALINA_HOME/webapps目下即可自动部署应用。但是如果应用需要JNDI的资源(如JNDI数据源),那么除了war文件外还需要额外配置Tomcat。这些额外配置工作通常是在context元素中显式地指定需要的JNDI资源,一般需要直接修改server.xml或者在webapps下创建单独的context xml文件。Tomcat 5.5则通过读取war文件中META-INF/context.x ...
  • 23:05
  • 浏览 (1105)
  • 评论 (0)
LDAP(Lightweight Directory Access Protocol)是一种基于计算模型的客户机/服务器X.500目录服务访问协议。LDAP是从X.500目录访问协议的基础上发展过来的,它是对X.500的简化,它和X.500的主要区别在于: LDAP是基于TCP/IP的,而X.500是基于OSI网络协议栈,OSI很少有真正的应用 LDAP删除了X.500中一些繁琐而不常用的功能 LDAP使用了更简洁的字符串来表示数据,而非比较复杂的结构化语法ASN1 (Abstract Syntax Notation One)LDAP客户端和LDAP服务器端交互的一般过程 ...
  • 11:44
  • 浏览 (970)
  • 评论 (0)
概述NSIS (Nullsoft Scriptable Install System)是一个Open Source的Windows系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS是通过它的脚 本语言来描述安装程序的行为和逻辑的。NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。NSIS脚本通常以 nsi为扩展名,支持include功能,头文件扩展名为nsh。 NSIS的主要特点是: 开销小,一个完整功能的安装程序仅需要34k的额外开销。 支持大多数Windows平台,包括:Wind ...
  • 11:39
  • 浏览 (2235)
  • 评论 (1)
    持续集成是成功的软件开发过程一个重要经验,也是众多软件开发过程方法和实践所倡导的,如微软的smoke test,持续集成也是极限编程的12个关键实践之一。简言之,持续集成就是把开发过程的代码改动持续不断的进行编译、测试以及时得到新的改动对系统的影 响。这就要求持续集成的过程必须实现自动化,而CruiseControl正是实现这一目的得力工具。 CruiseControl的安装过程相当麻烦,并且将cruisecontrol作为后台进程运行的配置也不太容易,应当编写一个安装程序(最理想的是可 以跨平台,如支持Windows, Unix/Linux)或者操作系 ...
  • 11:31
  • 浏览 (591)
  • 评论 (0)
1. 什么是maven 从字面解释maven是知识渊博、经验丰富的专家或怪才的意思。深入研究和使用maven,确实让人感到它确实沉淀了Java项目构建领域中的丰富知识和 经验,并以一种高度可复用的形式出现在你的面前。maven的开发者在他们开发网站上指出,maven的目标是要使得项目的构建更加容易,它把编译、打 包、测试、发布等开发过程中的不同环节有机的串联了起来,并产生一致的、高质量的项目信息,使得项目成员能够及时地得到反馈。maven有效地支持了测试 优先、持续集成,体现了鼓励沟通,及时反馈的软件开发理念。如果说Ant的复用是建立在"拷贝--粘贴"的基础上的,那 ...
  • 11:23
  • 浏览 (461)
  • 评论 (0)
问题:在ou=People,o=abc,dc=super, dc=com树下放了10000个用户节点(objectClass=inetOrgPerson, objectClass=inetuser)。其中有超过9000个用户的属性inetuserstatus的值为不正确的"true",需要更正为 "Active"。 解决方法:由 于需要修改的目录节点数目十分庞大,手工书写修改命令不太可行。所以,需要考虑用工具生成。考虑到ldapsearch的输出可以指定属性,可以在 ldapsearch输出的基础上加以修改得到最终的LDIF文件。首先,利用ld ...
  • 11:16
  • 浏览 (523)
  • 评论 (0)
     在J2EE应用开发中,应用所依赖类库是应用开发部署阶段需要考虑的重要因素。由于某些底层类库如Servlet API,JDBC Driver, JTA等已经包含在某些应用服务器中,开发阶段所依赖类库并不一定是运行时所必需的。这个依赖管理增加了复杂度,加上有时对应用的管理不善,经常会遇到在开发环境正常运行的应用到了生产环境就出现java.lang.ClassNotFoundException或java.lang.NoClassDefFoundError这样的异常或错误。此时,如果不了解应用的依赖关系,且应用的依赖关系比较复杂,了解某个具体的clas ...
  • 09:35
  • 浏览 (573)
  • 评论 (0)
       最初使用Spring是为了解决业务层的事务管理问题。原先用手写代码发起、结束/回滚事务的做法碰到粗心的开发者很容易导致连接池的资源耗尽。Spring的声明性事务管理功能无疑是一剂良方。本文说明几种常见的配置方式及各自的优缺点。方法一:BeanNameAutoProxyCreator优点:有大量bean声明性事务管理时使用该方法可以简化配置示例:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC ...
  • 11:18
  • 浏览 (570)
  • 评论 (1)
如何通过ServletContext获得web应用所处的context path?在J2EE中部署web应用时需要指定该应用所负责的url path,也就是所谓的context path。通常web应用应当和context path位置无关,但有时应用可能需要知道它所处的context path。通过HttpServletRequest中getContextPath()方法可以获得该信息,但是ServletContext中没有相应的方法可以获得该信息。某些Servlet/JSP容器可能可以通过ServletContext.getAttribute("xxx")来获得该信息, ...
  • 10:26
  • 浏览 (368)
  • 评论 (0)
在Java中创建、使用Web Service主要是通过JAX-RPC来进行的。JAX-RPC Service Endpoint(JSE)和EJB Endpoint是Java Web Service的服务器端两种主要实现方式。而Java Web Service的客户端主要有: 生成的stub,它是最常用的,最接近Java RMI的语义; 动态代理; 动态调用接口 Java Web Service的服务器端实现JSE是通过Servlet(下称JAX-RPC Servlet)响应来自客户端的SOAP消息的,JAX-RPC Servlet负责把SOAP消息转换为Java的方法调用 ...
  • 09:20
  • 浏览 (342)
  • 评论 (0)
Java Web Service的客户端实现有三种1. 生成的stub2. 动态代理3. 动态调用接口其中生成stub是最常用的。stub是用JAX-RPC编译器根据WSDL文档生成的,其主要功能是将对endpoint接口的方法调用转化为SOAP 消息,并且负责将返回的SOAP响应转换为方法的返回值,把SOAP fault转化为方法的异常。JAX-RPC编译器产生的stub除了要实现endpoint接口外,还需要实现或继承 javax.xml.rpc.Stub接口或其实现的子类(Axis中是org.apache.axis.client.Stub)。 javax.xml.rpc.Stub接口主要 ...
  • 09:18
  • 浏览 (4478)
  • 评论 (2)
选择Axis的理由:1. 开发速度快2. 可移植性好,可在不同的application server, web container中运行3. 成熟稳定,Axis是从Apache SOAP(IBM SOAP4J)发展过来的,Axis 1.0在2002年10月发布,Axis是许多商业app server的基础,如WebSphere。开发WSDL开发Web Service应该从设计WSDL入手。对于使用了复杂数据类型的web service,如果对手写xml schema不是很熟悉可以先编写web service的java接口定义和表示相关的参数、返回值类的类,然后再用Axis的Java2WSDL工 ...
  • 09:15
  • 浏览 (1079)
  • 评论 (0)
schnell18
搜索本博客
博客分类
最近加入圈子
存档
最新评论
评论排行榜