`
liugang594
  • 浏览: 978040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAX-WS 学习一:创建服务接口

 
阅读更多

Java1.6中自带了JAX-WS API,使得我们可以很方便、简单的开发一个基于Java的WebService应用。下面看一个JAX-WS中的HelloWord应用。

 

一、创建WebService Endpoint接口

首先我们来定义Server端的WebService服务接口,如下:

package test;

import javax.jws.WebService;

@WebService
public interface Calculator {

	public int add(int a, int b);

	public int multi(int a, int b);
}

 

这里看到在类定义上,加了一个“@WebService”的annotation,这是定义JAX-WS定义WebService的关键,这个annotation用来告诉java解析器你希望把这个接口中的方法发布成一些WebService的服务。

 

有了接口定义,下面给出一个实现:

package test;

import javax.jws.WebService;

@WebService(endpointInterface = "test.Calculator")
public class CalculatorImpl implements Calculator {

	public int add(int a, int b) {
		return a + b;
	}

	public int multi(int a, int b) {
		return a * b;
	}

	public int minus(int a, int b) {
		return a - b;
	}
}

 

 这里WebService annotation里加了一个参数"endpointInterface",这个参数用来指定这个WebService的抽象服务接口,例如此处如果不用"endpointInterface"指定接口,那么生成的WebService服务有三个操作"add","multi"和"minus",也就是定义在当前类中的方法集;如果指定了endpointInterface,则只有"add","multi",即定义在Calculator中的方法集。

 

二、发布服务

 

上面就已经定义好了服务接口和服务实现类,然后就可以发布了。发布也是相当的简单,只需要一条语句:

package test;

import javax.xml.ws.Endpoint;

public class Server {

	public static void main(String[] args) {
		Endpoint.publish("http://localhost:8088/calculator",
				new CalculatorImpl());
	}

}

 这里publish方法需要两个参数:

  • address:服务对外暴露的用于调用服务的地址
  • implementor:服务的实现对象

启动这个Server类,就可以访问服务了。要测试服务有没有启动,可以输入ttp://localhost:8088/calculator?wsdl,如果一切正常,就可以看到一个wsdl定义内容,表示服务已经成功启动。

 

三、annotations

使用jax-ws时,有两个重要的annotation:

  • @WebService

此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。@WebService有六个参数可以用来配置这个WebService的定义: 

  1.  
    1. endpointInterface:上面已经介绍了,指向一个定义此WebService抽象定义接口的完整类路径
    2. name:WebService名;默认的port名为"实现类名+Port",binding名为"实现类名+PortBinding",通过指定name的值来替换 实现类名。
    3. portName:指定port名,可以完成替换默认port名,或由上面的"name"指定的port名。
    4. targetNamespace:指定targetNamespace值,默认的值为 "http://包名/",可以通过此变量指定一个自定义的targetNamespace值。(注:如果分别定义和接口和实现,则他们有各自的targetNamespace)
    5. serviceName:指定service名
    6. wsdlLocation:指向一个预定义的wsdl的文件,替代自动生成的wsdl文件。
  • @WebMethod
    1. action:指定此方法对应的action
    2. exclude:true --表示此方法包含在web服务中;false表示排除此方法
    3. operationName:指定方法对应的operation的名字。

 

分享到:
评论
1 楼 zlfkkyo 2012-11-25  
写得真好

相关推荐

    wsdl2java源码-CXFDemo:一个关于CXF实现jax-ws规范的webservice

    一个关于CXF实现jax-ws规范的webservice #CXF框架 Apache CXF=Celtix+Xfire.是一个开源的一个webservice,可以与spring无缝集成。支持soap1.1、1.2、RESTtful或者CORBA。 ##使用CXF实现jax-ws规范的webservice ...

    JaxRs2Retrofit:基于 JAX RS 接口创建 Retrofit 客户端

    基于接口创建类。 例如,给定以下 JAX-RS 定义 package serverPackage ; import javax.ws.rs.GET ; import javax.ws.rs.Path ; import javax.ws.rs.PathParam ; @Path ( " /helloworld " ) public interface ...

    SoapWS:Spring-WS 与 Spring Boot 一起测试

    JAVA EE 和 JAX-WS 将是一个不错的选择,但我决定坚持使用 Spring WS 和 Spring Boot 作为超级胶水。 作业涵盖了以下主题: 创建两个端点,根据简单过滤返回查询结果列表 使用 WS-Security 进行基本身份验证 按照...

    lucene-index

    Lucene索引ÔËĐĐťˇžłŁş jdk-1.7 tomcat-7.0.47 ˇĂÎĘľŘÖˇŁş myeclipse 网络服务: 创建一个“网络服务项目” 创建一个类并添加一个将成为服务接口的方法创建“Web 服务” 3.1 选择“JAX-WS”和...

    BOS技术整理-05

    创建一个maven项目(war) 编写实体类,Service 导入applicationContext.xml 配置cxf的发布 客户端测试代码 WebService-RS RS-独立发布 编写服务接口 打上@path配置路径 @get等请求方式 @...

    JAVA_API1.6文档(中文)

    JavaTM 2 Platform Standard Edition 6 API 规范 本文档是 Java 2 Platform Standard Edition ...javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算...

    Spring中文帮助文档

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    Spring API

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    java api最新7.0

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    JDK_1_6 API

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    JavaAPI1.6中文chm文档 part1

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    JavaAPI中文chm文档 part2

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    [Java参考文档]

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    Java 1.6 API 中文 New

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    [Java参考文档].JDK_API 1.6

    javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...

    ASP EXCEL导入SQL

    它们的新的项目分别是ApacheCXF和Axis2.Java语言也制定关于REST网络服务规范:JAX-RS:JavaAPIforRESTfulWebServices(JSR311)。相信还会出现更多与REST相关的激动人心的信息。  REST与AJAX技术  尽管AJAX技术的...

Global site tag (gtag.js) - Google Analytics