`

webService学习笔记

阅读更多

面向服务的架构
异构系统间的远程调用
远程调用




面向过程 c语言
面向对象 c++ java
面向组件 DCOM EJB (相同语言之间)
面向标准组件 web service
面向服务 soa


webService 简单实现
需要注意的是服务器端的包名,要和客户端的包名相同(命名空间必须相同)
示例代码如下:

接口类:
package cn.yue.servicetest;


import javax.jws.WebService;


/**
* 定义webService接口
*
* @time 5:50:58 PM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
@WebService
public interface MyService {
public String seyHello(String name);
}




实现类:
package cn.yue.servicetest.impl;


import cn.yue.servicetest.MyService;


/**
* webService实现类
*
* @time 5:52:55 PM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class MyServiceImpl implements MyService {


public String seyHello(String name) {
return "你好" + name;
}


}




web Service 发布到tomcat服务器上
需要spring来集成
spring 的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">


<!-- cxf内部使用的一些bean的定义 -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<!-- 指定跟哪种协议进行绑定 http, soap -->
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<!-- servlet的bean定义 -->
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />


<bean id="myService" class="cn.yue.servicetest.impl.MyServiceImpl" />
<!-- 服务端 -->
<jaxws:server address="/myService">
<jaxws:serviceBean>
<ref bean="myService" />
</jaxws:serviceBean>
</jaxws:server>




</beans>






web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- =============== Spring 设置 =============== -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>


<!-- =============== CXF 设置 =============== -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
<!-- 定义所有以services打头的路径是要访问web服务 -->
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>





使用自带工具生成java类型
bin目录下的wsdl2java -d 目标目录 路径(格式如下)
http://localhost:8080/webServiceDemo/services/myService?wsdl






webservice 工作原理
向服务器端发送一段xml文件,报务器端向客户端返回一个xml文件,尊守soap协议(简单对象访问协议)
依赖http协议,不受访火墙影响




复杂返加类型
jaxb定义了xml与java对象之间的转换
在实体bean上添加注解@XmlRootElement




xml 与java对象之间的转换(java ---- schema )


schema 的一般格式


<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/myservice"
xmlns:tns="http://www.example.org/myservice"
elementFormDefault="qualified">
<element name="customer" type="tns:customerType">
</element>
<!-- 定义customer 类型 -->
<complexType name="customerType" >
<sequence>
<element name="id" type="int"/>
<element name="name" type="string"/>
</sequence>
</complexType>
</schema>


使用jdk自带的xjc生成java类文件
命令如下:
xjc -d 目标目录 源文件目录

在生成的java类中,内个常用的注解
@XmlAccessorType(XmlAccessType.FIELD)
PROPERTY 公有的get set 方法
FIELD 私有属性映射
PUBLIC_MEMBER 根据公有属性和公有的get set方法进行映射


java转xml实现代码如下:
public static void main(String[] args) throws JAXBException {
CustomerType type = new CustomerType();
type.setId(4);
type.setName("赵六");


JAXBElement<CustomerType> element = new ObjectFactory().createCustomer(type);
// 转换工厂
JAXBContext context = JAXBContext.newInstance(CustomerType.class);


// java转xml
Marshaller marshaller = context.createMarshaller();
//中文乱码问题(控制台默认输出编码为gbk)
marshaller.setProperty(Marshaller.JAXB_ENCODING, "gbk");
marshaller.marshal(element, System.out);


}




xml转java

分享到:
评论

相关推荐

    WebService学习笔记

    【WebService学习笔记】 WebService是一种基于互联网的、标准化的、跨平台的、跨语言的通信机制,使得不同系统间的应用程序可以互相交互数据和服务。它的核心理念是服务导向架构(SOA),即通过服务的方式实现应用...

    WebService学习笔记0001

    【WebService学习笔记0001】 在IT领域,WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的互操作性技术,它允许不同系统间的应用程序通过网络进行通信。本学习笔记将围绕WebService的核心概念、工作原理...

    webservice学习笔记

    ### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...

    webservice学习笔记doc文档

    在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...

    尚硅谷Webservice学习笔记

    在本篇尚硅谷的学习笔记中,主要涉及了Web Service的基础概念、Schema约束、HTTP协议以及相关面试问题。 1. Schema约束: - Schema是XML Schema Document的缩写,它是一种XML格式,用于定义其他XML文档的结构和...

    Webservice学习笔记.doc

    Web Service是一种基于开放标准的技术,允许不同的应用程序之间通过互联网交换数据,实现跨平台、跨语言的互操作性。它的核心理念是创建无需用户界面就能与其他应用交互的Web应用程序。例如,在金融行业中,一个股票...

    webservice学习笔记 -- XFrie

    【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...

    122158-Webservice学习笔记.doc

    Web服务是一种基于互联网的软件应用接口,允许不同的应用程序之间进行数据交换,无需考虑它们所运行的操作系统或编程语言。... ...GET方法用于获取资源,所有参数都包含在URL中;POST方法用于提交数据,数据包含在请求体...

    122158_Webservice学习笔记.doc

    Web服务是一种基于互联网的技术,允许不同的应用程序之间进行数据交换,不受操作系统、编程语言或平台的限制。这种松耦合的特性使得Web服务成为跨企业、跨系统的集成解决方案。本篇文章将深入探讨Web服务的核心概念...

    webService笔记

    webservice学习笔记1DTD是为了校验XML 2语法 3 schema

    WebService 学习

    【WebService学习】 WebService是一种基于互联网的、松散耦合的分布式计算模型,它允许不同的系统之间进行数据交换和业务交互。这项技术的核心是利用XML(可扩展标记语言)作为数据交换的标准格式,SOAP(简单对象...

    webservice小案例

    1. "webservice学习笔记.docx":这可能是一份详细的学习指南,涵盖了Web服务的基本概念、JAX-WS的使用方法,以及案例的具体步骤。文档中可能会有理论解释、代码示例和调试技巧等内容。 2. "jaxwsServer":这部分可能...

    Web Service学习笔记.doc

    WebService学习笔记 Web Service 是一种软件系统,为了支持跨网络的机器间相互操作交互而设计。它通常被定义为一组模块化的 API,它们可以通过网络进行调用,来执行远程系统的请求服务。在传统的程序编码中,存在...

Global site tag (gtag.js) - Google Analytics