Web Service简单入门示例

    我们一般实现Web Service的方法有非常多种。当中我主要使用了CXF Apache插件和Axis 2两种。

Web Service是应用服务商为了解决每一个问题而提供的在线服务方案,其主要採用了SOAP(Simple Object Access Protocol)协议,传输数据格式使用XML格式来描写叙述。因此也具有跨平台的特性。

web广泛用到的技术:
  1. TCP/IP:通用网络协议。被各种设备使用
  2. HTML标准通用标记语言下的一个应用):通用用户界面,能够使用HTML标签显示数据
  3. Java:写一次能够在不论什么系统执行的通用编程语言,由于java具有跨平台特性
  4. XML标准通用标记语言下的一个子集):通用数据表达语言,在web上传送结构化数据的easy方法
他们的特点是其开放性。跨平台性,开放性正是Web services的基础。

以下是使用CXF Apache的插件实现Web Service的一个简单入门实例





1========新建一个服务接口



package com.clark;



import javax.jws.WebParam;

import javax.jws.WebService;



@WebService

public interface IHelloWorld {

    

    public String sayHello(@WebParam(name="name")String name);

    

    public int plus(int a,int b);

}

2========服务接口实现类



package com.clark.impl;



import com.clark.IHelloWorld;



public class HelloWorldImpl implements IHelloWorld {



    @Override

    public String sayHello(String name) {

        return "Hello Wolrd ,"+name;

    }



    @Override

    public int plus(int a, int b) {

        return a+b;

    }



}



3============服务端



package com.clark.service;



import javax.xml.ws.Endpoint;



import com.clark.impl.HelloWorldImpl;



public class WebServiceApp {

    public static void main(String[] args) {

        System.out.println("web service start");

        HelloWorldImpl implementor = new HelloWorldImpl();

        String address = "http://localhost:8080/IHelloWorld";

        Endpoint.publish(address, implementor);

        System.out.println("web service started");

    }

}



4============client(以下主要是针对Java普通程序的)

package com.clark.client;



import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;



import com.clark.IHelloWorld;



public class HelloWorldClient {

    public static void main(String[] args) {

        JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();

        svr.setServiceClass(IHelloWorld.class);

        svr.setAddress("http://localhost:8080/CXFWebService/service/IHelloWorld");

        IHelloWorld hw = (IHelloWorld) svr.create();

        String name = hw.sayHello(" CXF Apache implements Web Service");

        int result = hw.plus(2, 3);

        System.out.println(name);

        System.out.println(result);

    }

}



4==============client(针对Spring中集成Web Service的Web开发)

package com.clark.web;



import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



import com.clark.IHelloWorld;



public class HelloWorldClient {

    public static void main(String[] args) {

        System.out.println("Web Service start..........");

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        

        IHelloWorld helloWorld = (IHelloWorld)context.getBean("client");

        

        String name = helloWorld.sayHello("1111111111");

        int result = helloWorld.plus(3, 4);

        System.out.println(name+"  "+result);

        

        System.out.println("Web Service end..........");

    }

}



5============Spring 的 applicationContext.xml配置

<?xml version="1.0" encoding="UTF-8"?

>

<beans xmlns="http://www.springframework.org/schema/beans"

                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                 xmlns:jaxws="http://cxf.apache.org/jaxws"

                 xsi:schemaLocation="

                       http://www.springframework.org/schema/beans



                       http://www.springframework.org/schema/beans/spring-beans.xsd

                       http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">



    <jaxws:endpoint

                              id="helloWorld"

                              implementor="com.clark.impl.HelloWorldImpl"

                              address="/IHelloWorld" />

   

                <bean id="client" class="com.clark.IHelloWorld"

                           factory-bean="clientFactory" factory-method="create"/>

    

                 <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">

                            <property name="serviceClass" value="com.clark.IHelloWorld"/>

                            <property name="address"



                                              value="http://localhost:8080/CXFWebService/service/IHelloWorld"/>

                  </bean>

</beans>



6=============Spring中集成Web Service服务(CXF Servlet的配置),web.xml

<?

xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  <display-name>CXFWebService</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

 

  <context-param>

      <param-name>contextConfigLocation</param-name>

      <!-- <param-value>classpath:applicationContext.xml</param-value> -->

      <param-value>WEB-INF/applicationContext.xml</param-value>

  </context-param>

 

  <listener>

      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

 

  <servlet>

                     <servlet-name>CXFServlet</servlet-name>

                     <display-name>CXFServlet</display-name>

                     <servlet-class>

                            org.apache.cxf.transport.servlet.CXFServlet

                     </servlet-class>

                     <load-on-startup>1</load-on-startup>

               </servlet>



               <servlet-mapping>

                      <servlet-name>CXFServlet</servlet-name>

                      <url-pattern>/service/*</url-pattern>

               </servlet-mapping>

</web-app>



7=============启动服务,地址栏输入

http://localhost:8080/CXFWebService/service/IHelloWorld?

wsdl可以看到对应的SOAP协议在规格OK


版权声明:本文博客原创文章,博客,未经同意,不得转载。

Web Service简单入门示例的更多相关文章

  1. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  2. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  3. Java:Web Service初入门

    前言 Web Service技术在我第一次接触,又没有实际使用时完全不理解这是什么.以为是一种类似Spring,Shiro的编程框架.后来渐渐理解,WS(即Web Service缩写)是一种通用的接口 ...

  4. Web Service简单demo

    最近开发因需求要求需要提供Web Service接口供外部调用,由于之前没有研究过该技术,故查阅资料研究了一番,所以写下来记录一下,方便后续使用. 这个demo采用CXF框架进行开发,后续所提到的We ...

  5. Java restful web service 开发入门

    可用的框架有不少,我用的是jersey. 直接上代码,其实,如果你会web service 这个restful的就很好理解了,自己跑一遍就OK了 用到的类 User.java package demo ...

  6. 百度 WebUploader 简单入门示例

    首先一定要引入:jquery.js 然后是webuploader的一个 css和还一个js 三个必须引用. <!DOCTYPE html> <html xmlns="htt ...

  7. spring简单入门示例

    1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字.       控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖 ...

  8. C# 之 Socket 简单入门示例

    这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序.在这个例子中,实际上还有很多问题没有解决,如消 ...

  9. C# Web Service简单使用

    第一步 打开VS,新建一个项目 第二步  创建一个ASP.NET 空 Web应用程序 我这里用的是VS2017 第三步 添加一个Web 服务(ASMX) 右键解决方案-->添加-->新建项 ...

随机推荐

  1. MySQL多表查询之外键、表连接、子查询、索引

    MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...

  2. 虚拟机VM10装Mac OS X 10.9.3

    近期WWDC放出终极大招--新的编程语言Swift(雨燕),导致一大波程序猿的围观和跃跃欲试.当然了,工欲善其事,必先利其器,所以对于那些没有Mac又想要尝鲜的小伙伴肯定非常为难.可是,请放心,本文教 ...

  3. Xcode如何添加字体库--

    1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的resouce中 3.在程序viewdidload中加载一下一段代码 NSArray *familyNames = [UI ...

  4. asp.net中用FileStream类实现下载文件功能,自定义下载路径,像IE下载一样

    方法一: //这个值可以从配置文件读取,或者放个textbox让用户填 string path = "你的路径";FileStream outputStream = new Fil ...

  5. Linux C 编程内存泄露检測工具(二):memwatch

    Memwatch简单介绍 在三种检測工具其中,设置最简单的算是memwatch,和dmalloc一样,它能检測未释放的内存.同一段内存被释放多次.位址存取错误及不当使用未分配之内存区域.请往http: ...

  6. POJ 1753 位运算+枚举

    题意: 给出4*4的棋盘,只有黑棋和白棋,问你最少几步可以使棋子的颜色一样. 游戏规则是:如果翻动一个棋子,则该棋子上下左右的棋子也会翻一面,棋子正反面颜色相反. 思路: 都是暴搜枚举. 第一种方法: ...

  7. java读写文件

    对于任何文件,不管有没有扩展名,都可以读写.切记,最后要.close();,否则效果出不来. 读操作: package com.wjy.read; import java.io.BufferedRea ...

  8. 怎样在万网加入Lync Online SRV记录

    万网已经支持SRV记录解析了,可是有好几个朋友问我怎么加入SRV记录(假设域名提供商不支持,能够通过DNSPOD来实现),过程例如以下 1:绑定域名至Office 365 略,请查看我的视频或者博客中 ...

  9. 9patch(.9)怎么去掉自己画上的黑点/黑线

    在自己制作.9.png图片的时候,制作之后所制作的图片上面会显示出制作的痕迹,也即是图片区域上会显示小黑点和黑线.那么为了真正的利用.9.png图片的使用效果.这些瑕疵当然是不能出现的了.因此,要想办 ...

  10. PopupMenu消失(Dismiss)抓住

    一.在class在implements PopupMenu该监听器类:OnDismissListener, 然后在类需要实现一个方法未实现:onDismiss(PopupMenu menu). 二.参 ...