加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

第一课 jaxws-webservice编程

发布时间:2020-12-17 00:32:02 所属栏目:安全 来源:网络整理
导读:? 前言 ? 随着近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术。 Java的Webservice技术更是层出不穷,比较流行的有: Axis2,Spring WS以及Jaxws。 本人在日常工作和以往工程中,在使用了

?前言

? 随着近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术。

Java的Webservice技术更是层出不穷,比较流行的有:

Axis2,Spring WS以及Jaxws。

本人在日常工作和以往工程中,在使用了上述这些Webservice后进行了总结,比较,最终觉得jaxws是目前最标准,需要额外第三方插件最少,配置最少最灵活的webservice。

JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口。

本教程分成六课,为初级教程。

通过本教程,可以使一个没有Webservice概念或者没有写过Webservice的JAVA Resource快速上手入门,并能满足一般中小型项目中Webservice的应用。

对于Webservice Security,在(初级)教程中并不提供,会在高级教程中详细描述。

不过真正利用Webservice Security特性即XML加密技术的工程并不多,少之又少,大多还是以http: //xxx/xxxService?userId=&password=这样的形式来进行“假安全”通讯的。

必经我们的大部分项目是运行在Intranet里的,而且有很好的监控和布防。


目标:

1. 理解jaxws

2. 一切始于HelloWorld

3. 理解同步,异步

一、理解jaxws

概述

JAX-WS2.0 的全称为 Java API for XML-Based Webservices (JAX-WS) 2.0。JAX-WS 2.0 是对 JAX-RPC 1.0 规范的扩展,是 JAX-RPC 1.1 的后续版本, JAX-RPC 2.0 标准发布不久后便被重新命名为 JAX-WS 2.0。 JAX-WS 2.0 是面向 Java 5 的开发 Web services 的最新编程标准,它提供了新的编程模型和对以往的 JAX-RPC 方式的 Web services 进行了增强。 JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XMLBinding (JAXB,JSR 222),在parsing层,使用的是the Streaming API for XML (StAX,JSR 173),同时它还完全支持schema规范。

特性

支持SOAP 1.1(默认)、1.2

支持XML/HTTP Binding

支持WS-Addressing

支持document/literal样式

支持WS-I Basic Profile 1.1

支持消息传输优化机制(Message Transmission Optimization Mechanism,MTOM)


二、一切始于HelloWorld

提示:JDK6中集成了两个工具wsgen和import,在JDK根目录bin下可以查看到的,这是两个很有用的工具,可以大大提高开发效率的


2.1 下载jawx第三方插件 网址:http://jax-ws.java.net/? 并解压,解压内容如下图

这个目录里有我们写JAXWS所需的所有lib包以及JAXWS自带的教程。

2.2? 建立webservice 服务端server工程目录如下图



2.2.1 把下载JAXWS插件目录中lib导入项目中

2.2.2 Hello.java

package leon.ws;
import javax.jws.WebService;
@WebService
public class Hello {
?? ?public String sayHello(String name) {
?? ??? ?return ("Welcome,I am Server. Hello," + name);
?? ?}

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


2.2.3. 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">
?? ?<listener>
?? ??? ?<listener-class>
?? ??? ??? ?com.sun.xml.ws.transport.http.servlet.WSServletContextListener
?? ??? ?</listener-class>
?? ?</listener>

?? ?<servlet>
?? ??? ?<servlet-name>Hello</servlet-name>
?? ??? ?<servlet-class>
?? ??? ??? ?com.sun.xml.ws.transport.http.servlet.WSServlet
?? ??? ?</servlet-class>
?? ??? ?<load-on-startup>2</load-on-startup>
?? ?</servlet>

?? ?<servlet-mapping>
?? ??? ?<servlet-name>Hello</servlet-name>
?? ??? ?<url-pattern>/HelloService</url-pattern>
?? ?</servlet-mapping>
?? ?<welcome-file-list>
?? ??? ?<welcome-file>index.jsp</welcome-file>
?? ?</welcome-file-list>
</web-app>


2.2.4 sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">

? <endpoint name="Hello" implementation="leon.ws.Hello" url-pattern="/HelloService" />
?
</endpoints>


2.2.5 启动 http://127.0.0.1:8282/ws/HelloService?wsdl? webservice 的服务端发布成功


三、理解同步,异步

3.1 同步方法 请看:http://blog.csdn.net/lorenluo/article/details/8214606

3.2 异步方法 请看:http://blog.csdn.net/lorenluo/article/details/8214609


转载:http://blog.csdn.net/lifetragedy/article/details/7205832

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读