自定义webService

要生成一个wsdl,首先要有一个ws,建立一个简单的ws

package com.bxw.server;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/*
 *  自定义ws服务, jdk1.6版本仅仅支持 soap1.1格式,jdk1.7及以上版本支持 soap1.2格式
 *  发布ws服务只需要@WebService注解即可, 如果想要更好的可维护性,则可以通过注解来实现
 * */
@WebService // 默认静态的方式是不能发布ws服务的
(
        name="MyWebService1",  // 服务实现类的名称
        serviceName="MyWebServiceService1",  // 默认在发布的服务实现者的名称后面添加Service
        portName="MyWebServicePort1",   // 服务类型的名称: 默认在 发布的服务实现者(MyWebService) 后面添加 port
        targetNamespace="com.bxw.ws"    // 发布ws服务的命名空间,此空间默认为当前服务包路径的 "倒写"此名称也是 wsimport 命令生成 java类时默认的包路径 -p
)
public class WebService1 {

    @WebMethod(exclude=true)  // 默认public方法可以发布为ws服务, 如果要排除则配置  exclude=true
    public String saySth(String text){
        return "say"+text;
    }

    //可以指定wsdl中的方法名,参数名和返回值
    @WebMethod(operationName="saySth")
    public @WebResult(name="result") String saySth(@WebParam(name="text") String text,@WebParam(name="age") String age){
        return "say "+text+"|| age "+age;
    }
    public static void main(String[] args) {
        String address = "http://localhost:9090/ws";
        Endpoint.publish(address, new WebService1());
        System.out.println("访问wsdl的地址:"+address+"?WSDL");
    }
}

要创建一个ws,只需要添加@webService注解即可。其余注解用法已写在注释中。运行后,访问服务发布的地址:http://localhost:9090/ws?wsdl

之后创建客户端:

cmd运行wsimport命令后,将生成的java文件copy至客户端项目中。

package com.bxw.client;

import java.net.MalformedURLException;
import java.net.URL;

import com.bxw.ws.MyWebService1;
import com.bxw.ws.MyWebServiceService1;

public class WebClient {
    public static void main(String[] args) throws MalformedURLException {
        URL url = new URL("http://localhost:9090/ws?WSDL");
        MyWebServiceService1 service = new MyWebServiceService1(url);
        MyWebService1 ss = service.getMyWebServicePort1();
        System.out.println(ss.saySth("a", "1"));
    }
}

url可以在配置文件中配置,以防路径改变。

时间: 2024-10-10 11:11:01

自定义webService的相关文章

自定义WebService和客户端调用《二》

问题?自定义WebService和客户端调用<二>,客户端调用有几种方式 一.JDK创建WebService服务和使用 Oracle前身sun公司,早就意识到WebService的强大,和它的未来前景,所以在JDK中早就封装了这样的创建WebService服务. 查看DJK-API文档: 1.新建Java或web工程,建一个类(这个类作为服务端): <span style="font-family:Microsoft YaHei;font-size:18px;">

开发SharePoint 自定义WebService 的小工具

是一个开源的项目,地址:http://www.codeproject.com/Articles/10728/WSS-Web-Service-DISCO-and-WSDL-Generator-Helper 这个工具的主要作用是把wsdl文件和disco文件转换为aspx文件,具体使用详见这篇文章: http://www.cnblogs.com/chamblee/archive/2012/06/07/2540530.html

自定义及发布一个webservice服务

自定义及发布一个webservice服务    - 声明 某个业务服务为webservice服务       通过@webservice 注解来声明    - 发布webservice服务       Endpoint.publish()发布 (默认对public修饰的方法进行发布)    - 通过wsimport生成本地代理来访问自己发布的webservice       wsimport 1.发布自定义webservice phone.java package ws.myWebService

【WebService】CXF拦截器的设置以及自定义CXF拦截器

WebService系列文章: [WebService]带你走进webservice的世界 [WebService]自定义WebService服务及其调用 [WebService]wsdl配置详解以及使用注解修改wsdl配置 [WebService]CXF处理javaBean等复合类型以及Map等复杂类型的数据 CXF的拦截器和以前学过的servlet的拦截器类似的,都是在开始或结束切入一段代码,执行一些逻辑之类的.我们可以在调用ws服务前设置拦截器,也可以在调用ws服务后设置拦截器,当然了,拦

WebService

Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集) 标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, 无论它们所使用的语言. 平台或内部协议是什么, 都可以相互交换数据.Web Service是自描述

【WebService】wsdl配置详解以及使用注解修改wsdl配置

WebService系列文章: [WebService]带你走进webservice的世界 [WebService]自定义WebService服务及其调用 前面分析了一下关于ws的基本知识,我们知道,wsdl是ws中很重要的文档,我们可以通过解析该wsdl文档获取ws的相关信息,其实,如果不了解该文档结构的话,问题也不大,只要会解析即可进行开发.但是如果想要生成一个符合自己项目的,或者比较人性化的一个wsdl的话,或者从可读性角度来说,就需要在编写ws代码时进行一些相应的配置了,比如说ws名称,

【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据

WebService系列文章: [WebService]带你走进webservice的世界 [WebService]自定义WebService服务及其调用 [WebService]wsdl配置详解以及使用注解修改wsdl配置 在实际中除了传入一些基本的参数以外,还需要传入一些类似于javaBean等复合类型,或者Map等复杂类型的数据,这一篇博文主要来写两个demo,模拟一下CXF处理这类数据的过程. 1. CXF处理javaBean等复合类型的数据 客户端提交一个数据过去,要检查权限,比如是管

Webservice开发流程

Webservice简单的介绍 Webservice开发使用的通信协议是SOAP,支持简单对象的访问 Webservice的发布方式很多,可以采用axis2.jdk1.6以上版本自带的jdk发布 Webservice开发大致流程: 自定义Webservice接口和对外提供的方法,需要注意的方法返回值类型,一般接口返回都是符合接口报文规范的报文, 但是需要考虑报文内容的大小对报文的反馈方式适当调整. 自定义Webservice接口的实现类,该类是真正需要发布为service的类,但是该类本身一般不

WebService就是这么简单

WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那我们该怎么做????? 天气预报这么一个功能并不是简单的JS组件就能够实现的,它的数据是依赖数据库分析出来的,甚至需要卫星探测..我们个人建站是不可能搞这么一个数据库的吧. 那么既然我们自己干不了,我们可以去找别人吗???我们从搜索引擎搜索,可以发现很多提供天气预报的网站,但是它返回的是一个网页,而我们仅仅需要的是对应的数据! 我们可