精华内容
下载资源
问答
  • 自己总结的java webService接口开发案例,希望能够帮助我需要的朋友。
  • 1. A SOAP 1.2 message is ...附Java服务端修改服务暴露SOAP版本方法: 在接口的实现类上面添加注解 //import javax.xml.ws.BindingType; //import javax.xml.ws.soap.SOAPBinding; @BindingType(SOAPBinding.SOAP1
  • 简单的webservice示例,及使用java工具生成客户端 在JDK1.6版本以后,在<JAVA_HOME>/bin目录下有一个wsimport.exe工具,该工具可以根据wsdl文件自动生成webservice接口调用的java客户端代码,十分方便。而自己仅需要...
  • JAVA WebService服务jar包

    2019-04-10 14:51:39
    JAVA WebService服务jar包,完全可用 ,真是有效,欢迎下载
  • 主要为大家详细介绍了java webservice上传下载文件代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java webservice服务器端获取request对象的三种方式
  • C#调用JavaWebService

    热门讨论 2013-10-28 10:25:04
    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
  • Java WebService 简单实例 方式二(axis1直接调用方式)
  • NULL 博文链接:https://wujianjun.iteye.com/blog/517152
  • PB调用JAVA WEBSERVICE实例

    热门讨论 2013-09-13 08:30:24
    JAVA WEBSERVICE 建的实例工程,给PB调用, 因VS建的 WEBSERVICE PB很难调用,所以用JAVA的axis做了个小实例 共大家参考
  • Java webservice服务动态配置 包含有oracle数据库备份文件和后台配置界面 管理员登陆 admin/admin
  • Java Webservice Axis2 Client(含soapheader验证)
  • js 调用java webservice接口

    热门讨论 2014-03-21 17:21:02
    js调用webservice接口,并打印返回信息
  • Java webservice详解

    千次阅读 2019-07-08 00:45:19
    Java webservice详解1 webservice概述2 webservice核心要素2.1 SOAP2.2 WSDL3 webservice的使用场景4 webservice的结构5 Java中的webservice5.1 webservice服务端5.2 webservice客户端6 WDSL文件说明7 webservice ...

    1 webservice概述

      webservice 即 web 服务,因互联网而产生,通过 webservice 这种 web 服务,我们可以实现互联网应用之间的资源共享,比如我们想知道 手机号码归属地,列车时刻表,天气预报,省市区邮政编码等信息,由于我们自己的数据库中并没有这些信息,那么我们可以调用第三方提供的 webservice服务,获取这些信息;

      webservice 是一种系统之间进行调用的技术,系统之间调用的技术有:httpClient、hessian、dubbo、webservice 等;WebService 是一种跨越编程语言,跨越操作系统,跨越终端的远程调用技术,比如一个系统是 Java 语言开发的,另一个系统是 PHP 语言开发的,他们之间要实现信息交互,则可以使用 webservice 进行数据交互;

      所以 webservice 实现了异构系统之间的通信,不管是采用什么语言编写的,不管部署在什么操作系统平台上,使用 webservice 都可以实现信息的交换;

    2 webservice核心要素

    2.1 SOAP

      SOAP 英文全称为:Simple Object Access Protocol,即简单对象访问协议,它是基于 xml 格式的消息交换协议;

      OAP 定义了信息交换的格式,它包含一个重要的信封 envelope,使用信封envelope 来包装要传递的信息,使用命名空间 namespace 来区分传递的信息;简单来说,在 WebService 中传递的信息就是一封信,SOAP 就是信的通用格式,它定义了一封信应该有信封,信封里装着信的内容;

      信封(envlope)的格式是固定的,而信的内容(要传递的数据)可以自己定义;SOAP 协议传输的数据采用 xml 格式进行封装,采用 http 协议进行传输,即soap=xml+http;

    2.2 WSDL

      WSDL 英文全称为 Web Service Description Language,即 Web Service 描述语言;它使用 xml 对 Web Service 进行描述,比如提供服务的方法、参数、返回值、数据类型等信息进行描述;简单来说,wsdl 就是 webservice 服务的使用说明书;

    3 webservice的使用场景

      1、应用系统集成
      多个应用系统集成在一起,则需要信息交换或通信,那么可以采用 webservice进行通信;

      2、异构系统之间通信
      异构系统,主要是指编程语言不同的系统;不同系统之间,特别是开发语言不同的系统之间,可以通过 webservice 进行信息交换;

      3、软件复用
      webservice 可以作为一个公共的服务,供客户端调用,避免软件重复开发工作;

    4 webservice的结构

      服务端:提供服务,供客户端调用;
      客户端:调用服务,获得服务的数据;
             在这里插入图片描述

    5 Java中的webservice

      各种编程语言下都有 webservice 技术,比如 php、c#、Java 等;由于 webservice 定义交互的格式,所以不同编程语言之间可以实现相互调用,数据交换和通信;
      Java 中的 webservice,即 Java API for XML-Based Webservices,简称JAX-WS 规范;

      JAX-WS 是 sun 公司随 Java 5 发布的一项 webservice 规范,在此之前是JAX-RPC,JAX-RPC 不是很完善;由于 JAX-RPC 并不是很完善,所以在 Java 5 发布后,随即发布了 JAX-RPC2.0,该版本已经比较成熟和完善,后来为了和之前的规范进行区分,又将其改名为JAX-WS 2.0;

      Java 5 对应 JAX-WS 2.0 版本;
      Java 6 对应 JAX-WS 2.1 版本;
      Java 7 对应 JAX-WS 2.2 版本;
      目前 JAX-WS 是 2.2.9

    5.1 webservice服务端

      1、定义一个服务接口及实现,并将实现类注解为@WebService,标注了该注解的类的方法就变为 webservice 方法;

    public interface UserService {
    
        public String sayHi (String name);
    
        public String work (String work);
    
        public User getUser (User user);
    
    }
    
    /**
     * 标注了该@WebService注解的类的方法就变为webservice方法
     */
    @WebService
    public class UserServiceImpl implements UserService {
    
        @Override
        public String sayHi(String name) {
            return "Hi, " + name;
        }
    
        @Override
        public String work (String work) {
            return "He is working " + work;
        }
    
        @Override
        public User getUser (User user) {
            user.setName(user.getName() + "-service");
            return user;
        }
    }
    
    public class User {
    
        private int id;
    
        private String name;
    
        private Date birthday;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    }
    

      2、通过 Endpoint 的 publish 方法,将上一步定义的服务发布出去;

    public class Server {
    
        public static void main(String[] args) {
            //发布webservice
            String wsAddress = "http://localhost:6868/01-ws-java-server/ws";
            Endpoint endpoint = Endpoint.publish(wsAddress, new UserServiceImpl());
            System.out.println("webservice发布成功:" + endpoint.isPublished());
        }
    }
    

      3、运行 main 方法;

      4、 在 浏 览 器 里 输入 http://localhost:6868/01-ws-java-server/ws?wsdl 将 会 看 到webservice 的 wsdl 信息;有了服务端的 webservice 描述文件 wsdl,就可以根据这个描述文件开发客户端调用程序
    在这里插入图片描述

    5.2 webservice客户端

      1、根据服务端的 wsdl 文件生成客户端调用代码:
       在命令行输入命令(需要配置了 Java 环境变量):
      wsimport -encoding [编码] -keep -p [包名] [发布的服务地址?wsdl]
    比如:

    wsimport -encoding utf8 -keep -p com.ws.stub -Xnocompile http://localhost:6868/01-ws-java-server/ws?wsdl
    

      其中:
      wsimport 命令
      -encoding 指定生成代码的编码格式
      -keep 保存生成的代码
      -p 指定包名
      -Xnocompile 表示生成的代码不编译

          
    在这里插入图片描述
    在这里插入图片描述
      2、使用生成的代码调用服务端提供的服务;

    public class Client {
    
        public static void main(String[] args) {
    
            //1.创建一个webservice的客户端
            UserServiceImplService userServiceImplService = new UserServiceImplService();
    
            //2.获取远程服务接口对象
            UserServiceImpl userService = userServiceImplService.getUserServiceImplPort();
    
            //3.直接调用远程服务接口对象的方法
            String hi= userService.sayHi("张三丰");
            System.out.println(hi);
    
            String work = userService.work("Java");
            System.out.println(work);
    
            User user = new User();
            user.setId(100);
            user.setName("张无忌");
            user.setBirthday(DateUtils.dateToXmlDate(new Date()));
            User userServer = userService.getUser(user);
            System.out.println(userServer.getId() + "--" + userServer.getName() + "--" + userServer.getBirthday());
        }
    }
    

      注意Date类型要使用工具类特殊处理

    public class DateUtils {
    
        /**
         * 将Date类转换为XMLGregorianCalendar
         *
         * @param date
         * @return
         */
        public static XMLGregorianCalendar dateToXmlDate(Date date){
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            DatatypeFactory dtf = null;
            try {
                dtf = DatatypeFactory.newInstance();
                XMLGregorianCalendar dateType = dtf.newXMLGregorianCalendar();
                dateType.setYear(cal.get(Calendar.YEAR));
                //由于Calendar.MONTH取值范围为0~11,需要加1
                dateType.setMonth(cal.get(Calendar.MONTH)+1);
                dateType.setDay(cal.get(Calendar.DAY_OF_MONTH));
                dateType.setHour(cal.get(Calendar.HOUR_OF_DAY));
                dateType.setMinute(cal.get(Calendar.MINUTE));
                dateType.setSecond(cal.get(Calendar.SECOND));
    
                return dateType;
            } catch (DatatypeConfigurationException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 将XMLGregorianCalendar转换为Date
         *
         * @param cal
         * @return
         */
        public static Date xmlDate2Date(XMLGregorianCalendar cal){
            return cal.toGregorianCalendar().getTime();
        }
    }
    

    6 WDSL文件说明

      service
        整个 webservice 的服务信息,比如服务名,包括所有的服务;
      binding
        定义每个服务接口的消息格式和协议细节;
      portType
        描述整个 webservice 可以被执行的操作及相关信息;
      message
        定义操作的一个或多个数据参数;
      types
        定义 webservice 使用的全部数据类型;

    7 webservice 请求与响应监控

      webservice 的请求和响应是 soap 格式的 xml,可以采用一个端口监听工具 TCPMon,通过这个工具,我们可以非常方便地监听目标端口请求与响应的数据;

      TCPMon 相当于一个“ 拦截器”,所有我们向目标服务器发送的数据包和服务器返回的数据包都要经过这个拦截器(也可以叫作代理服务器),进而拦截到请求和响应的数据包;
    在这里插入图片描述
      如上图,如果不使用监控工具,我们是通过 http://xxx.xxx.xxx:8080 访问服务端的服务;如果使用监控工具,则通过访问监控工具,由监控工具请求服务端的,服务,然后再把结果返回给我们,则访问请求变为:http://xxx.xxx.xxx:9000
      需要访问9000重新生成WDSL,并替换掉之前的WDSL,然后重新发起请求。

    8 webservice 在Tomcat中发布

      1、添加相关依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.ws</groupId>
        <artifactId>03-ws-web-server</artifactId>
        <version>1.0.0</version>
    
        <dependencies>
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>2.2.10</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    2、编写服务接口

    public interface UserService {
    
        public String sayHi(String name);
    
        public String work(String work);
    
        public User getUser(User user);
    
    }
    

    3、添加服务实现类,并标注@webservice注解

    /**
     * 标注了该@WebService注解的类的方法就变为webservice方法
     */
    @WebService
    public class UserServiceImpl implements UserService {
    
        @Override
        public String sayHi(String name) {
            return "Hi, " + name;
        }
    
        @Override
        public String work (String work) {
            return "He is working " + work;
        }
    
        @Override
        public User getUser (User user) {
            user.setName(user.getName() + "-service");
            return user;
        }
    }
    

    4、在WEB-INF文件夹下创建webservice配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
    
        <!-- 服务路径http://网站路径/ws/userService -->
        <endpoint name="userService"
                  implementation="com.ws.service.impl.UserServiceImpl"
                  url-pattern="/ws/userService" />
    
    </endpoints>
    

    5、在web,xml中添加WSServlet,servlet3.0也可以不添加如下配置

    <?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_3_0.xsd"
             id="WebApp_ID" version="3.0">
    
        <!-- Servlet 3.0或者以上不需要配置 -->
        <servlet>
            <servlet-name>jaxws</servlet-name>
            <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>jaxws</servlet-name>
            <url-pattern>/ws/*</url-pattern>
        </servlet-mapping>
    
    </web-app>
    

    调用和之前一样

    9 在Spring中使用webservice

      1、导入依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.ws</groupId>
        <artifactId>05-ws-spring-web-server</artifactId>
        <version>1.0.0</version>
    
        <dependencies>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.3.13.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.jvnet.jax-ws-commons.spring</groupId>
                <artifactId>jaxws-spring</artifactId>
                <version>1.9</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

      2、编写服务接口
      3、编写接口的实现类,并添加@webservice注解,需要让spring将该类加载为一个bean,所以需要加上@servcice或者@Component注解

    /**
     * 标注了该@WebService注解的类的方法就变为webservice方法
     */
    @Component
    @WebService
    public class UserServiceImpl implements UserService {
    
        @Override
        public String sayHi(String name) {
            return "Hi, " + name;
        }
    
        @Override
        public String work (String work) {
            return "He is working " + work;
        }
    
        @Override
        public User getUser (User user) {
            user.setName(user.getName() + "-service");
            return user;
        }
    }
    

    4、添加spring配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <import resource="applicationContext-jaxws.xml"/>
    
    </beans>
    

      5、配置spring的jax-ws配置文件

    <?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:context="http://www.springframework.org/schema/context"
           xmlns:ws="http://jax-ws.dev.java.net/spring/core"
           xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    		http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd
    		http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd">
    
        <context:component-scan base-package="com.ws.service.impl" />
    
        <!-- 绑定webservice地址,需要与web.xml的地址对应 -->
     	<!-- 访问:http://localhost:8080/webservice-server-spring-web//ws/userService"?wsdl -->
        <!--alt + enter-->
        <wss:binding url="/ws/userService">
            <wss:service>
                <ws:service bean="#userServiceImpl" />
            </wss:service>
        </wss:binding>
    
    </beans>
    

      6、配置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_3_0.xsd"
             id="WebApp_ID" version="3.0">
    
        <!-- needed for ContextLoaderListener -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
        <!-- Bootstraps the root web application context before servlet initialization -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <!-- 用于配置地址栏请求路径 -->
        <servlet>
            <servlet-name>JaxWsServlet</servlet-name>
            <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>JaxWsServlet</servlet-name>
            <url-pattern>/ws/*</url-pattern>
        </servlet-mapping>
    
    </web-app>
    

      调用和之前一样

    展开全文
  • NULL 博文链接:https://longwenbin2008.iteye.com/blog/299543
  • java Webservice

    2010-01-17 12:59:42
    最简单的java webservice ,按照步骤完成java webservice学习
  • java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰
  • Java WebService入门实例

    2016-12-13 22:28:46
    Java WebService入门实例
  • 主要介绍了Java访问WebService返回XML数据的方法,涉及java操作WebService的相关技巧,需要的朋友可以参考下
  • java webservice实例教程PPT

    热门讨论 2014-03-24 12:41:09
    java webservice实例教程ppt,共15讲,java webservice实例教程适合对象:想要学习SOA面向服务编程思想,学习Webservice技术,希望学习系统间通信设计的Java设计开发人员。java webservice实例教程适合于各个层次的...
  • asp.net调用java webservice实例

    热门讨论 2012-12-13 08:45:13
    asp.net调用java webservice实例
  • .net调用java WebService

    2015-05-05 09:55:40
    此文档是DotNet调用Java WebService的含代码的讲解与应用,对.Net开发者有很好的启发作用。
  • java webservice 客户端、服务端生成工具,请修改批处理文件中的wsdl路径
  • webseservice 客户端调用,java发布的axis2 webservice,通过 js调用调用webservice,普通ajax实现,里面有详细注释,代码简单明了,我自己做过测试。希望对大家有所帮助。
  • java webservice

    2015-08-23 07:04:35
    这是一个java webservice 的 demo,服务器端建立一个服务,客户端从安卓发送登录请求,服务器端再进行处理
  • java调用windows系统的com组件,用jacob来处理。JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32程序库。
  • JAVA调用WEBSERVICE接口

    2017-07-12 09:25:47
    JAVA调用WEBSERVICE接口
  • 一个java webService项目,使用spring / mybatis / apache cxf。 1个数据库配置 修改文件:src \ main \ resources \ application.properties。 该项目包含oracle jdbc,如果需要其他,则应添加jdbc lib。 2 mybatis...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,010
精华内容 32,004
关键字:

javawebservice

java 订阅