Archive for 03月, 2010
Published by
admin on
03月 31, 2010
在项目中需与.net的系统做接口,采用webservice方式实现,java系统通过xfire实现接口供.net调用,.net调用接口成功,但传递过来的汉字解析时却出现乱码;
起初以为是字符集问题,确认.net使用gb2312字符集,java使用gbk,通过String content = new String (input.getBytes( “gb2312″), “GBK”); 进行转换未果,有人建议在Java中使用ISO-8859-1编码作为中转,将GBK编码下的字符串转换为UTF-8的字符串,然后以byte数组形式传递出来,但是始终没有能解码过来
网上搜索问题.得知.根本的原因在于”utf-8在.net和java里的编码不同”
通过如下方法解决:
Java程序:
// 将 s 进行 BASE64 编码
Read the rest of this entry »
Published by
admin on
03月 30, 2010
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。 可以说,Java虚拟机是Java语言的基础。它是Java技术的重要组成部分。Java虚拟机是一个抽象的计算机,和实际的计算机一样,它具有一个指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。Java解释器负责将字节代码翻译成特定机器的机器代码。Java是一种简单的语言。它用到的概念不多,而且多为程序员所熟悉。如果你是一名程序员,掌握Java对你来说是易如反掌的事。即使你没有学过任何编程语言,学习Java也要比学习C++要容易的多。
由于Java最初是为控制电子产品设计的,因此它必须简单明了。为了保证这种简单性,Java去掉了C++中许多复杂的、冗余的、有二义性的概念,例如操作符重载、多继承、数据类型自动转换等。为了将程序员从复杂的内存管理的负担中解脱出来,同时也是为了减少错误,Java使用了自动内存垃圾收集机制,程序员只要在需要的时候申请即可,不需要释放,而由Java自己来收集、释放内存中的无用的块。
与C++相比,Java有着更强的面向对象特性,是一种比较纯粹的面向对象语言。一般我们使用的一些所谓的面向对象的编程语言,如C++,Object Pascal等,实际上都是一种混合型的语言,即在过程式的语言中加上面向对象的扩展。在Java中,几乎万物皆对象,就连一些基本数据类型,如整型、字符型、浮点型等,在Java中都可以作为对象处理。Java的面向对象特性几乎可以与Smalltalk媲美,但是其适用于分布式计算环境的特性却远远超过了Smalltalk。
Published by
admin on
03月 30, 2010
今天看了看java.beans包,发现了两个好东西,XMLEncoder和XMLDecoder。发现自己以前把从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。
以下是引用片段:
package com.imct.util;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* <title>使用XML文件存取可序列化的对象的类</title>
* <description>提供保存和读取的方法</description>
Read the rest of this entry »
Published by
admin on
03月 30, 2010
1. 概述
本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。
在 下面的描述中,将以”中文”两个字为例,经查表可以知道其GB2312编码是”d6d0 cec4″,Unicode编码为”4e2d 6587″, UTF编码就是”e4b8ad e69687″。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来”表示”。
2. 编码基本知识
最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。
Read the rest of this entry »
Published by
admin on
03月 30, 2010
J2EE的概念
目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
Read the rest of this entry »
Published by
admin on
03月 30, 2010
Web service到底是什么;在什么情况下你应该使用Web service。
分布式应用程序和浏览器
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。
传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。
关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。
Read the rest of this entry »
Published by
admin on
03月 28, 2010
找了好几种spring集成xfire的资料,觉得最简单的一种就是通过org.codehaus.xfire.spring.XFireSpringServlet 接收来发布webservices .说它简单是因为都是用的 spring 和xfire 提供的类和文件 .具体过程:
服务器端:
1,首先配置 web.xml 文件:
Read the rest of this entry »
Published by
admin on
03月 28, 2010
Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。
Spring和XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用的方法。所用的Spring版本为2.0,XFire版本为1.2.6。
1 配置XFire Servlet
在web.xml中加入如下配置:
Read the rest of this entry »
Published by
admin on
03月 28, 2010
步骤
1:开发服务类
2.配置xfire中的配置信息
3.web.xml中配置xfire的信息:
4.发布ws信息
5.客户端访问信息
服务端代码的使用如下:
package cn.com.huawei.xfire.jsr.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* 服务端代码使用注解实现
* 此方式类似Net中ws的发布
* 使用WebService注解将一个类注解为ws,name为ws的名称,
* 使用webMethod注解ws的服务的行为(方法)
* 使用WebResult 注解ws服务的结果信息
* 使用webParam注解ws服务的行为的参数信息header=true表示信息是否添加到soap的header中
* @author bailonggang
* 2009-3-9
* 下午10:00:12
*/
@WebService(name = “HelloService”, targetNamespace = “http://www.openuri.org/2004/04/HelloWorld”)
public class HelloServiceImpl {
@WebMethod(operationName=”hello” ,action=”urn:EchoString”)
@WebResult(name=”echoResult”)
public String hello(@WebParam(name=”echoParam” ,header=true)String username)
{
return “Hello ,”+username;
}
}
xfire的配置文件services.xml必须添加到META-INF下面的xfire目录中:
Read the rest of this entry »
Published by
admin on
03月 28, 2010
XFire实例大全