`
吃猫的鱼
  • 浏览: 45496 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JDK 1.6 环境下开发 WebService

阅读更多

    JDK1.6 中已经支持用Java开发WebService应用了,而且很方便。这样就大大减少了项目安装部署的代价,因为选择开源的框架依赖大量第三方包,程序的尺寸倍增。下面为大家提供一个一个JDK1.6开发Web Service的入门例子 HellService。

    1、服务端

    首先创建一个简单的接口 IHello ,这个接口就只有一个方法 say:

package com.spr.ws.service;


public interface IHello {
	
	public String say(String msg);

}

   然后编写HelloService的服务类 Hello ,实现上面的接口:

package com.spr.ws.service.impl;

import javax.jws.WebService;

import com.spr.ws.service.IHello;

@WebService
public class Hello implements IHello{

	public String say(String msg) {		
		return "Hello "+msg;
	}
	
}

   接着在项目的classpath根目录(工程项目 .classpath 文件所在目录)对服务端代码进行 apt 编译:

E:\etl\webService>apt com/spr/ws/service/impl/Hello.java

    编译的结果是在 com.spr.ws.service.impl 包下生成 jaxws 子包,该包下生成两个源文件:Say.java 和 SayResponse.java。

    最后,编写WebService的服务启动类。这里JDK1.6已经将这个过程提升到了API级别:

package com.spr.ws.soap.server;

import javax.xml.ws.Endpoint;
import javax.xml.ws.soap.SOAPBinding;

import com.spr.ws.service.impl.Hello;

public class SoapServer {

	/**
	 * <b>Summary: </b>
	 *     main(WebService的发布)
	 * @param args 
	 */
	public static void main(String[] args) {
		System.out.println("准备启动WebService服务:http://127.0.0.1:8080/helloService");
		Endpoint endpoint = Endpoint.publish("http://127.0.0.1:8080/helloService",new Hello());
		SOAPBinding binding = (SOAPBinding) endpoint.getBinding();
		binding.setMTOMEnabled(true);
		System.out.println("已成功启动WebService服务:http://127.0.0.1:8080/helloService");
	}

}

    运行之后,打开浏览器,输入 http://127.0.0.1:8080/helloService?wsdl 就能看到WebService的xml结构了。至此,该WebService的服务端基本开发完毕。因为ws基本上是一个远程调用的过程(RMI),所以,关键还是在,客户端该怎么调用。

    2、客户端

    这里的客户端调用,当然还是在JDK1.6自带的环境。首先介绍两个命令:

    a、wsgen(生成WebService服务端文件)

    参数说明(工程根目录):

  •  -cp 定义classpath
  • -r 生成 bean的wsdl文件的存放目录
  • -s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
  • -d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
E:\etl\webService>wsgen -cp ./WebRoot/WEB-INF/classes -r ./WebRoot/ws -s ./src -d ./WebRoot/WEB-INF/classes -wsdl com.spr.ws.service.impl.Hello

    运行之后,会将前面开发的服务端java文件,转化成为webservice(HelloService.wsdl 和 HelloService_schema1.xsd)文件,存放在 WebRoot/ws 目录下。

    b、wsimport(一直WebService服务端地址,生成客户端文件,实现本地API式的调用,需要在ws运行的状态下进行)

    参数说明(工程根目录):

  • -d:生成客户端执行类的class文件的存放目录
  • -s:生成客户端执行类的源文件的存放目录
  • -p:定义生成类的包名
E:\etl\webService>wsimport -d ./WebRoot/WEB-INF/classes -s ./src -p [存放客户端代码的包名,如 com.spr.ws.soap.client] -keep [WebService 访问地址,如:http://127.0.0.1:8080/helloService?wsdl]

     运行之后,会在 com.spr.ws.soap.client 包下,生成若干客户端文件。这里才是关键。利用生成的客户端文件我们就可以把远端的WebService当做本地类来使用了。

package com.spr.ws.soap.client;

import com.spr.ws.soap.client.Hello;
import com.spr.ws.soap.client.HelloService;

public class TestHelloClient {

	public static void main(String[] args) {
		Hello hello = new HelloService().getHelloPort();
		System.out.println("----------HelloService.say()-------------");
		String result = hello.say("Web Service");
		System.out.println("result:"+result);
	}

}

 

分享到:
评论

相关推荐

    JDK1.6支持WebService

    在JDK 1.6中,Java提供了多种工具和技术来开发、部署和消费Web服务,使得开发者能够轻松地构建分布式企业级应用。 1. **Java API for XML Processing (JAXP)**:JAXP是Java处理XML的核心API,它包含了DOM、SAX和...

    jdk6 开发webservice

    总结起来,JDK 6通过JAX-WS提供了便利的Web Service开发环境,通过注解简化了接口定义和服务实现。开发者可以轻松地创建和部署Web Service,并且通过WSDL生成客户端代码,实现跨平台、跨语言的交互。在实际项目中,...

    JDK1.6新特性说明.doc

    4. **轻量级HTTP服务器**: JDK 1.6引入了一个内置的轻量级HTTP服务器,方便进行本地开发和测试,无需依赖外部服务器环境。 5. **嵌入式数据库Derby**: JDK 1.6集成了Apache Derby,一个轻量级的关系型数据库,适合...

    jdk开发webservice

    jdk6下开发webservice示例,JDK1.6 自带webservice构建,jdk6原生态webservice

    web服务开发 使用jdk6注解 注解分析

    在 JDK 1.6 版本中,注解的引入极大地简化了 Web 服务的开发,使得开发者能够更高效地创建、部署和管理 Web 服务。 `@WebService` 是 Java Web Services (JAX-WS) 中的一个核心注解,用于声明一个类或接口作为 Web ...

    供菜系统基本开发

    android SDK(4.0以上) + jdk1.6 下载adt-bundle-windows-x86_64-20131030.zip 64bit机器 APP英文名:FoodSupply 32bit另有相应版本 APP包名:com.stsol.foodsupply APP数据库名...

    基于JDK自带的Web服务JAX-WS实现WebService的简单示例

    Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。

    MyEclipse开发Webservice实例详解

    要开始开发Webservice,首先确保安装了MyEclipse 7.0和JDK 1.6。这些是开发和运行Webservice的基本需求。 3. **创建Web Service Project**: - 在MyEclipse中,通过`File` -&gt; `New` -&gt; `Other`,然后选择`Web ...

    Java与.net开发webservice详解大全

    开发环境中,使用的是JDK1.6和Eclipse3.6作为Java环境,Visual Studio 2010作为.NET环境。值得注意的是,从VS2010开始,不再直接提供ASP.NET Web Services模板,但可以通过其他途径实现与VS2008相同的功能。 在实际...

    CXF开发webservice服务端

    4. **JDK**:建议使用JDK 1.6或以上版本。 #### 三、项目搭建 ##### 1. 创建项目 - 在Eclipse中创建一个新的Dynamic Web Project,命名为`WebService_CXF_Host`。 - 将`apache-cxf-2.2.6`和`spring-ws-1.5.8`中的...

    MyEclipse下XFire开发Webservice实例

    - 开发环境是MyEclipse 7.0,需要JDK 1.6的支持。 - 配置过程中,选择XFire作为Web服务的框架。 2. **创建Web Service Project** - 在MyEclipse中新建一个Web Service Project,命名为`WebServiceServer`,并...

    WebService Axis 搭建开发

    4. **Jdk1.6** - Java开发工具包,为编写和运行Java代码提供必要的环境。 要获取Apache Axis,可以访问官方网站http://ws.apache.org/axis/下载最新版本的1.4Final。 二、用Java开发WebService Axis简单实例 在...

    第三次实验1

    总的来说,这个实验旨在使学生深入理解Web Service的工作原理,掌握JAX_WS和JDK1.6+环境下的开发流程,以及学会使用相关开发工具进行服务的测试和调试。这对于理解和实践分布式系统中的跨平台数据交换至关重要。

    Eclipse用Axis框架开发WebService

    3. **开发环境配置**: 开发 Axis WebService 需要 Eclipse、Java JDK 1.6 或更高版本,以及 Axis 的相关库(axis-bin.zip)。这些库通常包含了 Axis 运行所需的 JAR 文件,用于编译和运行 Web 服务。 4. **创建 Web...

    MyEclipse下XFire开发Webservice实例.doc

    1. **环境配置**:首先确保安装了MyEclipse 7.0及JDK 1.6或更高版本。 2. **创建Web服务项目**:通过File -&gt; New -&gt; Other,选择Web Service Project。在项目设置中,指定项目名称为`WebServiceServer`,选择XFire...

Global site tag (gtag.js) - Google Analytics