Java
文章平均质量分 73
江荣波
这个作者很懒,什么都没留下…
展开
-
Java中常用的操作PDF的类库
iTextiText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 该项目主页:http://www.lowagie.com/iText/JFreeReportJFreeReport的数据继承自Swing组件的原创 2015-12-06 18:36:41 · 12516 阅读 · 0 评论 -
Apache CXF 框架结构和基本原理
CXF旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成: 1.Bus 它是C X F架构的主干,为共享资源提供了一个可配置的场所,作用非常类似于S p r i n g的ApplicationContext。这些共享资源包括WSDL管理器、绑定工厂等。通过对Bus进行扩展,可以方便地容纳自己的资源,或替换现有的资源。默认Bus实现是基于Spring的,通过依赖注入,将运行时组件串起转载 2016-02-22 20:39:45 · 6399 阅读 · 0 评论 -
BigDecimal取余运算
取余运算在编程中运用非常广泛,对于BigDecimal对象取余运算可以通过divideAndRemainder方法实现。public BigDecimal[] divideAndRemainder(BigDecimal divisor);该方法接收另一个BigDecimal 对象作为参数,该参数即为除数,返回一个BigDecimal数组,返回数组中包含两个元素,第一个元素为两数相除的商,第二个元素为原创 2016-02-24 20:22:58 · 37627 阅读 · 2 评论 -
WebService学习之旅(一)使用JAX-WS发布WebService
JAX-WS全称Java™ API for XML Web Services,是随着JDK1.6及其后续版本发布的方便Java程序员开发WebService应用的一组API,通常简称为JWS,目前版本为2.x。 使用JAX-WS编写WebService非常简单,下面介绍WebService服务端及客户端实现。一、开发WebService服务端1.Web服务的接口称为SEI,我们首先要用定义一个接口原创 2016-03-22 21:13:16 · 4709 阅读 · 9 评论 -
Java&Xml教程(十一)JAXB实现XML与Java对象转换
JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,能够帮助开发者很方便的將XML和Java对象进行相互转换。 本文以一个简单的例子介绍JAXB的使用,首先我们需要了解一下JAXB常用的API。JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。Marshaller接口,将Java对象序列化为XML数据原创 2016-02-27 14:04:40 · 2773 阅读 · 6 评论 -
Eclipse中同时打开多个Console
实现效果如下图:实现方法: 1.点击Open Console案例下拉三角,选择New Console View。 2.点击Pin Console按钮將两个控制台同时固定住。 3.点击Display Selected Console显示两个不同应用的控制台即可。原创 2016-02-27 14:55:44 · 14408 阅读 · 1 评论 -
Wrapper class package.jaxws.methodName is not found. Have you run APT to generate them?解决方案
使用JAX-WS 2.X基于Web容器发布WebService报错,错误信息类似于:Wrapper class package.jaxws.methodName is not found. Have you run APT to generate them?用于发布Web服务的接口(SEI)定义如下:package com.csdn.jaxws.recipe01;import javax.jws.W原创 2016-03-23 22:45:41 · 3281 阅读 · 1 评论 -
WebService学习之旅(二)JAX-WS基于Web容器发布WebService
在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个,如果每个WebService都去编写一个main方法显然不合适,不利于Web服务的集中管理,而且不方便WebService与Web应用整合。 所以绝大多数情况下都会使用Web容器集中管理WebServ原创 2016-03-24 21:46:39 · 3898 阅读 · 2 评论 -
WebService学习之旅(三)JAX-WS与Spring整合发布WebService
Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1.5/downloads/releases.html 基于Spring IoC容器发布Web服务,能够大大降低WebService实现过程,也能够更好的与企业级应用进行整合,本文將和大家介绍如何基于Sp原创 2016-03-25 20:43:41 · 15214 阅读 · 5 评论 -
WebService学习之旅(四)Apache Axis2的安装
一、Axis2简介 Axis2是目前使用较多的WebService引擎,它是Axis1.x的升级版本,不仅支持SOAP1.1和SOAP1.2,而且也提供了对REST风格WebService的支持。 Axis2较旧的版本是更有效率,更加模块化和更多的XML类型。它是经过精心设计,可以轻松添加模块,以提升现有的功能特征,例如安全性和可靠性等。二、Axis2下载与目录结构介绍 Apache Axis原创 2016-03-26 22:12:20 · 3524 阅读 · 0 评论 -
ESB企业服务总线
ESB是企业服务总线(Enterprise Service Bus)的缩写,是中间件技术与Web Service等技术结合的产物,也是SOA系统中的核心基础设施。ESB就是一个服务的中介,形成服务使用者->ESB服务Proxy->服务提供者的生物链,中介的作用在不同应用中各有不同:解耦中介 :客户对实际服务提供者的身份、物理位置、传输协议和接口定义都是不知道也不关心的,交互集成代码提取到了业务逻辑之转载 2016-02-20 22:02:24 · 4853 阅读 · 0 评论 -
WebService学习之旅(七)Axis2发布WebService的几种方式
前面几篇文章中简单的介绍了如何使用Axis2发布WebService及如何使用Axis2实现Web服务的客户端调用,本节將详细介绍Axis2发布WebService的几种方式。一、使用aar包方式发布 这种方式也是Axis2官方比较推荐的一种方式,Axis2 提供的Eclipse插件就是以这种方式发布WebService。 这种方式前面我们已经接触过了,这里还是简单的介绍一下步骤:1.新建一个e原创 2016-03-29 19:29:42 · 4893 阅读 · 0 评论 -
深入解读ESB与SOA的关系
时至今日,SOA的概念渐渐清晰了。有关ESB的概念,已经吵了好多年了,还是没有定论。 我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同。因此应该从不同的角度来认识。一、SOA和ESB一直是没有明确概念的两个缩略词原因是这两个词包含的内涵太丰富了,无法用一两句话说清楚,并且,这个词在不同的地方含义也有所不同。 SOA—-面向服务架构,实际上强调的是软件的一种架构,一种支撑软转载 2016-02-02 19:29:20 · 1244 阅读 · 0 评论 -
AngularJs与Java Web服务器交互
在使用公司内部WEB前端框架时发现其实公司所谓的内部框架就是在AngularJs的基础上进行二次开发,框架中所有的特性在AngularJs中都能找到原型。AngularJs是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互。原创 2016-01-07 20:33:43 · 21230 阅读 · 2 评论 -
spring-framework-4.1.x源码阅读环境搭建(导入Eclipse)
注意:搭建spring-framework-4.1.x源码 eclipse工作空间需要安装jdk8.spring-framework-4.1.x项目采用目前主流的项目管理工具gradle进行构建,至于使用gradle构建项目的优点此处不做介绍,读者可以自行参考网上相关资料。搭建spring-framework-4.1.x源码的Eclipse工作空间需要以下几个步骤:1.安装Gradlegradle原创 2015-12-06 00:31:41 · 3095 阅读 · 0 评论 -
Java&Xml教程(一)简介
XML是广泛用于数据传输和存储的技术。Java语言提供个各种各样的API来解析XML,例如DOM、SAX、StAX、JAXB。也还有一些其他的API用于解析XML,例如JDOM。本教程的目的是探索使用不同类型的API解析XML和学习使用XML执行一些常见的任务。DOM XML解析DOM解析是最简单的解析方式,將XML文件加载到内存中,然后我们可以通过遍历Node节点来解析XML。DOM解析适用于内容翻译 2015-12-07 20:33:57 · 2290 阅读 · 0 评论 -
Java&Xml教程(八)使用JDOM将Java对象转换为XML
在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。 JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutputter 类能将Document写到任何OutputStream和Writer对象中。 在本例中我们创建Employee对象集合并将它写到XML文件中。 Employee.javapackage c翻译 2016-01-09 13:48:29 · 3332 阅读 · 0 评论 -
Java&Xml教程(九)Java中通过XSD校验XML合法性
Java XML校验API能够通过XSD(XML Schema Definition)校验XML文件内容的合法性。在下面的案例中使用javax.xml.validation.Validator 类通过一个xsd文件来鉴定XML内容合法性。 下面是我们将要用于校验的xsd文件和xml文件的内容。 Employee.xsd<?xml version="1.0" encoding="UTF-8"?>翻译 2016-01-26 21:28:32 · 10237 阅读 · 0 评论 -
Java&Xml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象。遍历元素和节点不需要按照顺序进行。 DOM解析方式适合尺寸较小的XML文件,由于它將整个XML文件全部装载到内存中处理,所以不太适合处理尺寸较大的XML文件。对于较大的XML文件需要使用SAX解析。 在本教程中我们将对XML文件读取和解析,并用它来创建对象。下面是翻译 2015-12-08 19:01:44 · 1383 阅读 · 0 评论 -
Java&Xml教程(七)使用JDOM修改XML文件内容
JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强。前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容。 在这个教程中,我们准备对下面的XML文件进行修改: employees.xml<?xml version="1.0" encoding="UTF-8"?><Employees xmlns="http://www.jou翻译 2015-12-26 11:08:26 · 4041 阅读 · 1 评论 -
Java&Xml教程(三)使用DOM方式修改XML文件内容
DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素、删除元素、修改元素值、修改元素属性等操作。 我们的XML文件,内容如下: employee.xml<?xml version="1.0" encoding="UTF-8" standalone="no"?><Employees> <Employee id="1"> <name>Pankaj</name>翻译 2015-12-09 19:57:23 · 12935 阅读 · 0 评论 -
Java&Xml教程(十)XML作为属性文件使用
我们通常会将Java应用的配置参数保存在属性文件中,Java应用的属性文件可以是一个正常的基于key-value对,以properties为扩展名的文件,也可以是XML文件.在本案例中,將会向大家介绍如何通过Java程序输出这两种格式的属性文件,并介绍如何从classpath中加载和使用这两种属性文件。翻译 2016-01-31 14:25:10 · 2594 阅读 · 0 评论 -
JVM内存参数详解以及配置调优
基本概念:PermGen space:全称是Permanent Generation space。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。GC(Garbage Collection)应该不会对PermGen space进行清理所以如果你的APP会LOAD很多CLASS的话,就很可能出现转载 2016-04-09 22:09:10 · 5593 阅读 · 0 评论 -
WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用
上节介绍了如何使用Axis2 发布一个WebService,Axis2除了为我们编写WebService应用带来了便利,也同样简化的客户端调用的过程,本节在上节的基础上使用Axis2自带的工具生成客户端调用辅助类,并实现客户端调用代码的编写。1.將前面下载的axis2-1.7.1-bin.zip解压,新建一个环境变量AXIS2_HOME,值为解压后目录路径。接着在path变量中添加%AXIS2_HO原创 2016-03-28 21:36:59 · 3553 阅读 · 1 评论 -
WebService学习之旅(五)基于Apache Axis2发布第一个WebService
上篇博文介绍了如何將axis2 webservice引擎安装到Web容器中,本节开始介绍如何基于apache axis2发布第一个简单的WebService。一、WebService服务端发布步骤 1.打开Eclipse工程,新建一个Java Project,例如笔者工程名为axis2-recipe01。2.编写Web服务接口及实现类 HelloWorld.javapackage com.csd原创 2016-03-27 11:53:14 · 2478 阅读 · 0 评论 -
OSGI企业应用开发(九)整合Spring和Mybatis框架(二)
上篇文章中,我们完成了在OSGI应用中整合Spring和Mybatis框架的准备工作,本节我们继续Spring和Mybatis框架的整合。一、解决OSGI整合Spring中的Placeholder问题使用Spring框架的朋友应该都知道,我们可以在Bean的配置文件中,使用${key}的形式访问properties文件中对应的value值,需要用到Spring中的PropertyPlaceholde原创 2017-01-07 15:47:00 · 3070 阅读 · 5 评论 -
OSGI企业应用开发(十)整合Spring和Mybatis框架(三)
上篇文章中,我们已经完成了OSGI应用中Spring和Mybatis框架的整合,本文就来介绍一下,如何在其他Bundle中,使用Mybatis框架来操作数据库。为了方便演示,我们新建一个新的Plug-in Project工程,名称为com.csdn.osgi.user,表示用户模块。上篇文章中,我们使用<osgi:service/>标签將用于操作数据库的SqlSessionTemplate实例注册为原创 2017-01-07 19:36:09 · 3390 阅读 · 4 评论 -
OSGI企业应用开发(五)使用Blueprint整合Spring框架(二)
上篇文章中,我们开发了一个自定义的Bundle,接着从网络中下载到Spring和Blueprint的Bundle,然后复制到DynamicRuntime项目下。 需要注意的是,这些Bundle并不能在Eclipse自带的Equinox启动管理工具中显示,因为我们并没有將这些Bundle添加到自定义的Target Platform中,接下来我们就来完成这一操作。一、启动Spring和Blueprin原创 2016-12-18 23:01:33 · 3585 阅读 · 2 评论 -
OSGI企业应用开发(十一)Bundle资源获取途径
使用OSGI模块化标准构建Java EE项目,其中比较繁琐的一个方面就是Bundle资源的获取,因为很多开源框架官方都没有发布Bundle版本的Jar文件,这也是使用OSGI开发企业应用首先要解决的问题。本篇文章中,我们来总结一下Bundle资源的获取途径,包括如下几种方式:一、从SpringSource Enterprise Bundle Repository下载这种方式前面文章中已经提到过,Sp原创 2017-01-15 22:03:29 · 3392 阅读 · 3 评论 -
OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC
作为一个企业级的Web应用,MVC框架是必不可少的。Spring MVC目前使用也比较广泛,本文就来介绍一下如何在OSGI应用中实现Spring、Mybatis、Spring MVC框架的整合,其中Spring MVC的整合比较困难,原因是Spring整合到OSGI中后,每个Bundle都拥有一个孤立的ApplicationContext,也就是说不同Bundle中实例化的Bean之间的依赖注入就存原创 2017-02-12 13:33:09 · 6551 阅读 · 21 评论 -
OSGI企业应用开发(十二)OSGI Web应用开发(一)
前面文章中介绍了如何在OSGI应用中整合Spring和Mybatis框架,本篇文章开始介绍如何使用OSGI技术开发Web应用。对于传统的Java EE应用,应用中涉及到的Web元素无非就是Servlet、JSP、静态资源等,其中静态资源包括HTML页面、CSS、图片等等。当然还有Portlet、Filter、Listener等,由于不太常用,本文就不涉及这方面的内容了。一、OSGI Web应用两种开原创 2017-01-20 21:10:02 · 4626 阅读 · 0 评论 -
OSGI企业应用开发(十三)OSGI Web应用开发(二)
上篇文章介绍了OSGI Web应用的两种开发模式,并把Jetty应用服务器以Bundle的形式整合到Equinox容器中,已这种模式开发Web应用,所有的应用程序资源,例如Servlet、JSP、HTML页面等,都需要使用OSGI规范提供的HttpService服务进行注册,否则无法通过浏览器请求服务器端资源。一、HttpService服务详解接着我们就来了解一些HttpService服务,它实际上原创 2017-01-21 19:31:46 · 3531 阅读 · 16 评论 -
OSGI企业应用开发系列博文源码托管至Github
OSGI企业应用开发系列博文源码已托管至Github,源码地址: https://github.com/rongbo-j/osgi-enterprise-application-dev可以直接单击“Clone or download”按钮下载源码,或者使用Git客户端clone一份,命令如下:git clone https://github.com/rongbo-j/osgi-enterprise原创 2017-02-20 22:50:22 · 1669 阅读 · 0 评论 -
Java中(Integer)127 == (Integer)127和(Integer)129 == (Integer)129表达式结果差异分析
一直觉得自己Java基础还不错,但是第一眼看到(Integer)129 == (Integer)129表达式时竟然无法立刻反映过来结果到底是true还是false,不妨先来看一下下面简单的Java程序:package com.csdn.test;public class Main { public static void main(String[] args) { Syste原创 2017-04-01 20:22:52 · 4959 阅读 · 0 评论 -
OSGI企业应用开发(七)细说Blueprint & Gemini Blueprint(二)
上篇文章介绍了标准的Blueprint 规范与 Gemini Blueprint如何自定义Bean配置文件路径,本文接着上篇文章继续介绍Blueprint的使用。一、Bean的配置前面提到过,Gemini Blueprint即实现了Blueprint 规范,又兼容Spring DM风格的配置,本节我们再来了解一下Blueprint与Spring DM在Bean的配置上的差异,具体如下表所示: (注原创 2016-12-25 21:29:41 · 3220 阅读 · 1 评论 -
OSGI企业应用开发(四)使用Blueprint整合Spring框架(一)
上篇文章中介绍了如何使用独立的Equinox发行包搭建OSGI运行环境,而不是依赖与具体的Eclipse基础开发工具,本文开始介绍如何使用Blueprint將Spring框架整合到OSGI中。一、开发一个自己Bundle在整合之前,我们接着上篇文章的内容,先来开发一个自己的Bundle。 首先新建一个Plug-in Project,名称为com.csdn.osgi.common,如下图: a原创 2016-12-18 20:01:42 · 4830 阅读 · 12 评论 -
OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
上篇文章介绍了如何在Eclipse中搭建Felix的运行环境,我们需要將Bundle发布到Felix框架的bundle目录下,Felix框架启动时才会自动加载这些Bundle,否则需要在Felix框架启动后手动安装Bundle,我们可以发现Bundle的管理非常麻烦,而且一旦Bundle启动报错,我们修改代码后,又需要重新发布Bundle进行调试,虽然我们可以使用自动化工具Ant或者Maven进行管原创 2016-12-18 15:24:05 · 6382 阅读 · 1 评论 -
org.apache.axis2.AxisFault: Service class XXXXX must have public as access Modifier解决方案
使用Axis2工具生成客户端调用辅助类后,编写客户端调用代码运行时报错,完整错误信息如下:log4j:WARN No appenders could be found for logger (org.apache.axiom.locator.DefaultOMMetaFactoryLocator).log4j:WARN Please initialize the log4j system prop原创 2016-03-28 21:46:21 · 3159 阅读 · 0 评论 -
Java EE的十三个技术规范
Java 是一种非常棒的语言,健壮,跨平台运行,屏蔽了具体的平台环境的要求,也就是说只要支持java 虚拟机,就可以运行java程序。 下面,我们一起学习一下J2EE的十三种技术规范。 一、JDBC:Java Data Base Connectivity,数据库连接 大家对微软的ODBC数据库访问的接口比较熟悉,而在java中创建数据库连接使用的是JDBC,学习过程中,JDBC和ODB转载 2016-05-22 23:24:08 · 2439 阅读 · 1 评论 -
TCP报文发送工具
该工具用于向Socket服务端发送XML报文,软件功能界面如下图所示: 配置好IP和端口后,单击“载入报文文件”按钮,在文件选择对话框中选择报文文件,如图: 报文文件打开后,可在右侧编辑框中对报文进行编辑,如下图: 单击“发送请求”按钮后,弹出一个新的窗口展示Tcp Server返回的报文信息,如图: 该工具源码已托管至Github,源码地址: https://github.c原创 2016-10-15 23:18:41 · 12620 阅读 · 5 评论