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

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

时间: 2024-10-14 19:21:53

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

Web Service简单入门例子

我们一般实现Web Service的方法有很多种.其中我主要使用了CXF Apache插件和Axis 2两种. Web Service是应用服务商为了解决每个问题而提供的在线服务方案,其主要采用了SOAP(Simple Object Access Protocol)协议,数据传输格式使用XML格式来描述,因此也具有跨平台的特性. web广泛用到的技术: TCP/IP:通用网络协议,被各种设备使用 HTML(标准通用标记语言下的一个应用):通用用户界面,可以使用HTML标签显示数据 Java:写一

Eclipse创建jsp web项目及入门示例

Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK). 本文为大家讲解的是Eclipse下创建jsp web项目及入门示例,感兴趣的同学参考下. Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,E

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

Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积分下载): http://download.csdn.net/detail/zhangbing2434/9435460(这里用的是Idea,eclipse,导入的时候可能会有些差异) 1.tiles依赖的jar包:     maven代码: <dependency> <groupId>

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

1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转\依赖注入,和AOP面向切面编程. 1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字. 控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们

Java restful web service 开发入门

可用的框架有不少,我用的是jersey. 直接上代码,其实,如果你会web service 这个restful的就很好理解了,自己跑一遍就OK了 用到的类 User.java 1 package demo.helloworld; 2 3 import javax.xml.bind.annotation.XmlRootElement; 4 5 /** 6 * @author edi_kai 7 * @version 创建时间:2015-8-20 下午03:46:24 8 * 类说明 9 */ 10

百度 WebUploader 简单入门示例

首先一定要引入:jquery.js 然后是webuploader的一个 css和还一个js 三个必须引用. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&

spring简单入门示例

1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字. 控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它. 举个简单的例子,程序猿加班了一个月,很累,想要放松下,于是去找人吃“麻辣烫”. 不使用spring的传统做法是,我们自己通过陌陌微信等神器,主动寻找目标,花费大量人力物力,达成协议后,申请“场所”办正事

hello flume (Ubuntu 下 flume1.5单机版安装以及简单入门示例)

1,下载最新的flume安装包: wget http://www.apache.org/dist/flume/stable/apache-flume-1.5.2-bin.tar.gz 2,在安装目录解压: tar -zxvf apache-flume-1.5.2-bin.tar.gz 3,设置环境变量 export JAVA_HOME=/usr ; export FLUME_HOME=/home/joeyon/apache-flume-1.5.2-bin; export PATH=$PATH:F

JavaGUI之Swing简单入门示例

简介 AWT(译:抽象窗口工具包),是Java的平台独立的窗口系统,图形和用户界面器件工具包. Swing 是为了解决 AWT 存在的问题而以 AWT 为基础新开发的包(在使用Swing时也常会用到java.awt.*包). JFrame JFrame容器允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户.我们可以直接new一个JFrame对象,也可以自己实现一个类继承它(常用). 常用方法 设置窗口可见:setVisible(true);//默认为false 设置窗口标题:s