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);
}
}
分享到:
相关推荐
在JDK 1.6中,Java提供了多种工具和技术来开发、部署和消费Web服务,使得开发者能够轻松地构建分布式企业级应用。 1. **Java API for XML Processing (JAXP)**:JAXP是Java处理XML的核心API,它包含了DOM、SAX和...
总结起来,JDK 6通过JAX-WS提供了便利的Web Service开发环境,通过注解简化了接口定义和服务实现。开发者可以轻松地创建和部署Web Service,并且通过WSDL生成客户端代码,实现跨平台、跨语言的交互。在实际项目中,...
4. **轻量级HTTP服务器**: JDK 1.6引入了一个内置的轻量级HTTP服务器,方便进行本地开发和测试,无需依赖外部服务器环境。 5. **嵌入式数据库Derby**: JDK 1.6集成了Apache Derby,一个轻量级的关系型数据库,适合...
jdk6下开发webservice示例,JDK1.6 自带webservice构建,jdk6原生态webservice
在 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数据库名...
Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。
要开始开发Webservice,首先确保安装了MyEclipse 7.0和JDK 1.6。这些是开发和运行Webservice的基本需求。 3. **创建Web Service Project**: - 在MyEclipse中,通过`File` -> `New` -> `Other`,然后选择`Web ...
开发环境中,使用的是JDK1.6和Eclipse3.6作为Java环境,Visual Studio 2010作为.NET环境。值得注意的是,从VS2010开始,不再直接提供ASP.NET Web Services模板,但可以通过其他途径实现与VS2008相同的功能。 在实际...
4. **JDK**:建议使用JDK 1.6或以上版本。 #### 三、项目搭建 ##### 1. 创建项目 - 在Eclipse中创建一个新的Dynamic Web Project,命名为`WebService_CXF_Host`。 - 将`apache-cxf-2.2.6`和`spring-ws-1.5.8`中的...
- 开发环境是MyEclipse 7.0,需要JDK 1.6的支持。 - 配置过程中,选择XFire作为Web服务的框架。 2. **创建Web Service Project** - 在MyEclipse中新建一个Web Service Project,命名为`WebServiceServer`,并...
4. **Jdk1.6** - Java开发工具包,为编写和运行Java代码提供必要的环境。 要获取Apache Axis,可以访问官方网站http://ws.apache.org/axis/下载最新版本的1.4Final。 二、用Java开发WebService Axis简单实例 在...
总的来说,这个实验旨在使学生深入理解Web Service的工作原理,掌握JAX_WS和JDK1.6+环境下的开发流程,以及学会使用相关开发工具进行服务的测试和调试。这对于理解和实践分布式系统中的跨平台数据交换至关重要。
3. **开发环境配置**: 开发 Axis WebService 需要 Eclipse、Java JDK 1.6 或更高版本,以及 Axis 的相关库(axis-bin.zip)。这些库通常包含了 Axis 运行所需的 JAR 文件,用于编译和运行 Web 服务。 4. **创建 Web...
1. **环境配置**:首先确保安装了MyEclipse 7.0及JDK 1.6或更高版本。 2. **创建Web服务项目**:通过File -> New -> Other,选择Web Service Project。在项目设置中,指定项目名称为`WebServiceServer`,选择XFire...