摘要:简介:编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一个 HTTP 请求怎么控制编码格式?如何避免出现中文问题?几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用
阅读全文
11 2012 档案
摘要:Quartz是一个强大的企业级Schedule工具,也是目前最好的开源Schedule 工具,最近因为项目的需要,简单的用到了 Quartz 的一些功能,对项目中使用 Quartz 的一些问题做简单的记录。在 Quartz 的应用中,我们用到了以下的一些东西,ScheduleFactory, Scheduler, Job, JobDetail, Trigger,简单说明一下他们的用途。SchedulerFactory 是 Scheduler 的工厂,我们可以从中获得受工厂管理的 Scheduler 对象。SchedulerFactory scheduleFactory = new StdSch
阅读全文
摘要:如何通过spring 向quartz动态注入service或者,传入动态参数?这里主要用到了org.springframework.scheduling.quartz.JobDetailBean这个类的setJobDataAsMap的这个方法!具体的API如下:setJobDataAsMappublic void setJobDataAsMap(Map jobDataAsMap) Register objects in the JobDataMap via a given Map. These objects will be available to this Job only, in con
阅读全文
摘要:Quartz 是一个强大的企业级 Schedule 工具,也是目前最好的开源 Schedule 工具。Spring中也集成了quartz的应用,下面就讲一下如何在spring中使用quartz。spring的配置:<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="simpleTrigger&qu
阅读全文
摘要:使用Quartz调度器Quartz调度器为调度工作提供了更丰富的支持。和Java定时器一样,可以使用Quartz来每隔多少毫秒执行一个工作。但Quartz比Java Timer更先进之处在于它允许你调度一个工作在某个特定的时间或日期执行。关于Quartz的更多信息,可以访问Quartz位于http://www.opensymphony.com/quartz的主页。让我们从定义发送报表邮件的工作开始使用Quartz:创建一个工作定义Quartz工作的第一步是创建一个类来定义工作。要做到这一点,你需要从Spring的QuartzJobBean中派生子类,如程序清单7.3所示: 程序清单7.3 定义
阅读全文
摘要:简介:在 Java™ 中,您可以使用以下几种方法来创建 RESTful Web Service:使用 JSR 311(311)及其参考实现 Jersey、使用 Restlet 框架和从头开始开发。Spring 是流行的 Java EE 应用开发框架,现在它的 MVC 层也支持 REST 了。本文将介绍使用 Spring 开发 RESTful Web Services 的方法。读者将了解如何使用 Spring API 和注释来开发 RESTful Web Services,以及 Spring 是如何将这个新特性整合到它的框架中的。引言Roy Fielding 是 HTTP 1.0 和 1.1 标
阅读全文
摘要:最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等
阅读全文
摘要:一、简单介绍在上一篇中我们涉及到了一个在Ubuntu下使用的curl命令,并且使用这个命令来模拟服务器的功能来向谷歌的C2DM服务器发送数据。下面简单的来说下在Windows下同样的使用curl命令的方式。二、具体实现Windows下默认没有curl命令,需要安装后才能使用。1.到这里下载http://curl.haxx.se/download/文件curl-7.17.1-win32-ssl.zip,如果不需要使用ssl的话,可以直接下载curl-7.17.1-win32-nossl.zip,并且直接就可以使用。不过因为我们请求的谷歌网址是https格式的,所以我们要使用带ssl功能的。2.在
阅读全文
摘要:转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。===================================curl网站开发指南阮一峰 整理curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面举例讲解如何将它用于网站开发。一、查看网页源码直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.
阅读全文
摘要:转载http://soulshard.iteye.com/blog/337886单独的Quartz集群在http://unmi.blogjava.net/有Unmi翻译的Quartz Job Scheduling Framework一书做了详细说明,在此不再重复。Spring+Quartz不集群的方式google百度也可以搜索出来一大堆,同样略过。要点1 在Spring中使用Quartz的高级配置问题描述Quartz集群仅能使用JDBC JobStore工作,需要在Spring中使用Quartz的高级配置解决办法1.1通过SchedulerFactoryBean的configLocation属
阅读全文
摘要:现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展。作业调度是现代系统中对 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求。虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题。对这个问题最合适的解决方案就是来自 OpenSymphony 的 Quartz API。Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作
阅读全文
摘要:Spring 3,ContentNegotiatingViewResolver, is an interesting view resolver, which allow you to output a same resource (content or data) to different type of views likeJSP,XML,RSS,JSONand etc. Put it simple, see following web requested URL, which will return in different views. http://www.mkyong.co...
阅读全文
摘要:In Spring 3, comes with a abstract class “AbstractRssFeedView” to generate RSS feed view, using java.net’s ROME package. In this tutorial, we show you how to generate a RSS feed view from Spring MVC framework.Technologies used : Spring 3.0.5.RELEASE ROME 1.0.0 JDK 1.6 Eclipse 3.6 ...
阅读全文
摘要:In Spring 3, one of the feature of “mvc:annotation-driven“, is support for convert object to/from XML file, if JAXB is in project classpath.In this tutorial, we show you how to convert a return object into XML format and return it back to user via Spring @MVC framework.Technologies used : Spring...
阅读全文
摘要:In Spring 3, you can enable “mvc:annotation-driven” to support object conversion to/from JSON format, ifJacksonJSON processor is existed on the project classpath.In this tutorial, we show you how to output JSON data from Spring MVC.Technologies used : Spring 3.0.5.RELEASE Jackson 1.7.1 J...
阅读全文
摘要:使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以在http://hc.apache.org/downloads.cgi下载1、并发请求View Code1packagegenerate.httpclient;23importjava.util.List;4importjava.util.concurrent.ExecutorService;5importjava.util.concurrent.Executors;67importorg.apa
阅读全文
摘要:转载自http://www.ibm.com/developerworks/cn/education/webservices/ws-jax/开始之前关于本教程在本教程中,我们将设计和开发一个订单处理应用程序,并将其功能作为 Web 服务公开,以便各种使用者以独立于平台的方式提交订单信息。目标完成了此教程后,可以应用相关概念和知识来使用 JAX-WS 技术为应用程序开发 Web 服务。先决条件要成功完成此教程,应该对 Web 服务技术具有基本的了解,而且需要能较为熟练地进行 Java 编程。系统要求要运行此教程中的示例,需要安装 Java Platform, Standard Edition (J
阅读全文
摘要:转载http://blog.csdn.net/zhangzhaokun/article/details/4750021最近学习了如何使用apache cxf和Spring发布webservice,虽然网上的资料很多,但是没有一个文档可以让读者按照操作步骤来实现完整的发布流程,都需要多篇文件杂合在一起,互相参考才可以完成第一个HelloWorld形式的Webservice。现在将我利用apache cxf和Spring发布webservice的详细的发布过程记录下来,以供后来者参考。环境信息如下:JDK1.5.15Tomcat5.5.26Spring2.5.5apache-cxf-2.2.4具体
阅读全文
摘要:在Spring中采用CXF来使用WebService是很方便的,这是按照Apache官方网站上的文章写的。1.Web服务接口HelloWorld.java:Java代码packagedemo.spring;importjavax.jws.WebService;@WebServicepublicinterfaceHelloWorld{StringsayHi(Stringtext);}2.实现类HelloWorldImpl.java:Java代码packagedemo.spring;importjavax.jws.WebService;@WebService(endpointInterface=&
阅读全文
摘要:首先 构建环境1.在eclipse下新建个web项目(我比较喜欢用eclipse),接着添加CXF必须依赖的jar包commons-logging-1.1.jargeronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)geronimo-annotation_1.0_spec-1.1.jar (JSR 250)geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)geronimo-servlet_2.5_spec-1.1-M1.jar (o
阅读全文
摘要:天地连站群可以根据用户输入的初始关键词,获取该关键词搜索引擎的搜索结果,然后逐条获取这些相关文章的内容。这样就需要面对无数网页的各种编码。为了解决这个问题,引入了下面的解决办法:在引入编码自动识别前,我们有两种途径获取网页的编码信息:其一、通过服务器返回的header里的charset变量获取其二、通过页面里的meta 信息获取正常情况下,如果服务器或者页面有提供这两个参数,而且参数是正确的,那我们抓取网页时就不存在编码的问题了。但是现实总是会难为我们这些程序员,抓取网页时,经常会出现以下几种情况:1.这两个参数缺失了2.这两个参数虽然都提供了,但是不一致3.这两个参数提供了,但是与网页实际的
阅读全文
摘要:前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,Dela.
阅读全文
摘要:简介:您可能已经非常熟悉新的 Java? 5 语言的泛型支持、并发工具库以及它们对集合框架的影响,但是这些并不是 Tiger 中集合框架的惟一变化。这个月,John Zukowski 将介绍另外几项增强,其中包括新的集合类型,以及现有类和接口的附加特性。请参与本文的讨论论坛。(可以单击文章顶部的讨论来访问该论坛。)JDK 5.0 中最吸引人的地方在于集合框架的一些最突出的特性上,例如:支持泛型的语言级别上的新变化,以及可以在java.util.concurrent包中找到的并发集合工具包。实际上,以前在 developerWorks 上的“驯服 Tiger: 并发集合”和“介绍 JDK 5.0
阅读全文
摘要:简介:Doug Lea 最初编写的util.concurrent包变成了 JSR-166 ,然后又变成了 J2SE 平台的 Tiger 版本。这个新库提供的是并发程序中通常需要的一组实用程序。如果对于优化对集合的多线程访问有兴趣,那么您就找对地方了。请在本文对应的讨论论坛上与作者 John Zukowski 及其他读者分享您对本文的想法。(您也可以单击文章顶部或底部的讨论来访问论坛)。在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用现有的库就不能实现,但是就像有了标
阅读全文
摘要:CDO的全称为Common Data Object 是公用数据结构的意思,这是抽象的一种新型的数据结构,可以设置基本的数据类型,比如:byte、short、int、long、float、double、String,也可以存储这些类型的数组,同样,CDO里可以嵌套新的CDO或者CDO数组,这种数据结构几乎是万能的数据结构,它可以很方便的转化为XML表示,也可以很方便的转化为Json的表示,同样XML或者Json也可以很方便的转化为CDO对象,设想有如下的代码:01CDO cdo1=newCDO();02cdo1.setIntegerValue("classid",1);03c
阅读全文
摘要:CDO中存储的数据类型用如下的接口常量定义:01packagecom.cdoframework.cdolib.base;0203importjava.io.Serializable;04importjava.text.SimpleDateFormat;050607publicinterfaceDataTypeextendsSerializable08{091011intNONE_TYPE =0;1213intBOOLEAN_TYPE =1;14intBYTE_TYPE =2;15intSHORT_TYPE =3;16intINTEGER_TYPE =4;17intLONG_TYPE =5;18
阅读全文
摘要:今天看NFS-RPC的源码,看到有这样的代码:Collections.unmodifiableList(servers);突然想起来自己之前看重构时的一种叫Encapsulate Collection的思想,今天以代码为主线再来回顾下:1publicclassCompany {23privateString companyName;//the name of company4privateList<String> clerkList;//the clerk list56//companyName,clearList getter and setter method7........
阅读全文
摘要:在模块化Java系列文章的第4篇里,我们将介绍声明式模块化,描述如何定义组件并将它们组织在一起,而无需依赖于OSGi API进行编程。前一篇文章,《模块化Java: 动态模块化》描述了如何通过使用服务(service)给应用程序带来动态模块化特性。它们是通过输出的一个(或多个)可以在运行时被动态发现的接口而实现的。尽管这种方式使得client和server完全解耦,但是又带来一个如何(何时)启动服务的问题。启动顺序在彻头彻尾的动态系统里,服务不仅可以在系统运行的时候装卸,还可以以不同的顺序启动。有时,这是个大问题:无论A和B的启动顺序如何,在系统达到就绪状态并准备好接收事件之前,如果没有事件(
阅读全文
摘要:本文是“模块化Java”系列文章的第三篇,我们将讨论动态模块化。内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。在前一篇文章《模块化Java:静态模块化》中,我们讨论了如何构建Java模块并将其作为一个单独的JAR进行部署。文中的例子给出了一个client和一个server bundle(两者在同一个VM中),client通过工厂方法找到server。在该例子中,工厂实例化了一个已知类,当然也可以使用反射来获取一个服 务实现;Spring就是大量运用这种技术把spring对象绑定在一起的。在我们讨论动态服务之前,有必要回顾一下类路径,因为标准Java代码和模
阅读全文
摘要:模块化是大型Java系统的一个重要特征。在这些项目中构建脚本和项目通常被划分为多个模块,以便改进构建过程,但是在运行时却很少考虑划分模块的问题。在“模块化Java”系列文章的第二篇里,我们将讨论静态模块化(static modularity)。内容包括如何创建bundle、将其安装到OSG引擎以及怎样建立bundle之间的版本依赖。在下一篇文章中,我们将讨论动态模块化(dynamic modularity)并展示bundle如何对其他bundle作出响应。在上篇文章《模块化Java简介》 中讲到,Java在开发时把package作为模块化单元,部署时把JAR文件作为模块化单元。可是尽管像Mav
阅读全文
摘要:在过去几年,Java模块化一直是一个活跃的话题。从JSR 277(现已废止)到JSR 291,模块化看起来是Java进化过程中的必经一环。即便是基于JVM的未来语言,比如Scala,也考虑了模块化的问题。本文是关于模块化Java系列文章中的第一篇,讨论模块化的含义,以及为什么要关注它。什么是模块化?模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。实际上,除了规模大小有区别外,面向对象语言中对象之间的关注点分离与模块化的概念基本一致。通常,把系统划分外多个模块有助于将耦合减至最低,让代码维护更加简单。Java语言并不是按照模块化思
阅读全文