Spring学习笔记-WebServive

Spring 可以与RMI、Hessian、Burlap、HTTP invoker 等远程调用整合,但是都太麻烦了,在实际中应用很少,本文主要介绍如何使用Spring与WebService整合实现远程调用。
几个名词:

  • SOAP:简单对象访问协议
  • WSDL:WebService描述语言

JaxWs配置

package data_persistent.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter;

/**
 * JAX-WS配置
 * @author NikoBelic
 * @create 27/01/2017 16:33
 */
@Configuration
public class RMIConfig
{
    @Bean
    public SimpleJaxWsServiceExporter jaxWsServiceExporter()
    {
        System.out.println("RMI配置文件初始化");
        SimpleJaxWsServiceExporter exporter = new SimpleJaxWsServiceExporter();
        exporter.setBaseAddress("http://localhost:8088/services/");
        return exporter;
    }
}

WebService层

package data_persistent.webservice;

import data_persistent.dao.UserDao;
import data_persistent.model.UserObj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 * @author NikoBelic
 * @create 25/01/2017 22:44
 */
@Component
@WebService(serviceName = "userService")
public class UserWebService
{
    @Autowired
    private UserDao userDao;

    //@WebMethod
    public UserObj addUser(UserObj userObj)
    {
        return userDao.addUser(userObj);
    }
    //@WebMethod
    public UserObj findUserById(Integer id)
    {
        return userDao.findUserById(id);
    }
    //@WebMethod
    public void updateUserById(Integer id, UserObj userObj)
    {
        userDao.updateUserById(id, userObj);
    }
    //@WebMethod
    public void deleteUserById(Integer id)
    {
        userDao.deleteUserById(id);
    }
}

发布结果

访问http://localhost:8088/services/userService?wsdl

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--
 Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. 
-->
<!--
 Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. 
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.data_persistent/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.data_persistent/" name="userService">
<types>
<xsd:schema>
<xsd:import namespace="http://webservice.data_persistent/" schemaLocation="http://localhost:8088/services/userService?xsd=1"/>
</xsd:schema>
</types>
<message name="addUser">
<part name="parameters" element="tns:addUser"/>
</message>
<message name="addUserResponse">
<part name="parameters" element="tns:addUserResponse"/>
</message>
<message name="findUserById">
<part name="parameters" element="tns:findUserById"/>
</message>
<message name="findUserByIdResponse">
<part name="parameters" element="tns:findUserByIdResponse"/>
</message>
<message name="updateUserById">
<part name="parameters" element="tns:updateUserById"/>
</message>
<message name="updateUserByIdResponse">
<part name="parameters" element="tns:updateUserByIdResponse"/>
</message>
<message name="deleteUserById">
<part name="parameters" element="tns:deleteUserById"/>
</message>
<message name="deleteUserByIdResponse">
<part name="parameters" element="tns:deleteUserByIdResponse"/>
</message>
<portType name="UserWebService">
<operation name="addUser">
<input wsam:Action="http://webservice.data_persistent/UserWebService/addUserRequest" message="tns:addUser"/
<output wsam:Action="http://webservice.data_persistent/UserWebService/addUserResponse" message="tns:addUserResponse"/>
</operation>
<operation name="findUserById">
<input wsam:Action="http://webservice.data_persistent/UserWebService/findUserByIdRequest" message="tns:findUserById"/>
<output wsam:Action="http://webservice.data_persistent/UserWebService/findUserByIdResponse" message="tns:findUserByIdResponse"/>
</operation>
<operation name="updateUserById">
<input wsam:Action="http://webservice.data_persistent/UserWebService/updateUserByIdRequest" message="tns:updateUserById"/>
<output wsam:Action="http://webservice.data_persistent/UserWebService/updateUserByIdResponse" message="tns:updateUserByIdResponse"/>
</operation>
<operation name="deleteUserById">
<input wsam:Action="http://webservice.data_persistent/UserWebService/deleteUserByIdRequest" message="tns:deleteUserById"/>
<output wsam:Action="http://webservice.data_persistent/UserWebService/deleteUserByIdResponse" message="tns:deleteUserByIdResponse"/>
</operation>
</portType>
<binding name="UserWebServicePortBinding" type="tns:UserWebService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="addUser">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="findUserById">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="updateUserById">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="deleteUserById">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="userService">
<port name="UserWebServicePort" binding="tns:UserWebServicePortBinding">
<soap:address location="http://localhost:8088/services/userService"/>
</port>
</service>
</definitions>
#yddContainer{display:block;font-family:Microsoft YaHei;position:relative;width:100%;height:100%;top:-4px;left:-4px;font-size:12px;border:1px solid}#yddTop{display:block;height:22px}#yddTopBorderlr{display:block;position:static;height:17px;padding:2px 28px;line-height:17px;font-size:12px;color:#5079bb;font-weight:bold;border-style:none solid;border-width:1px}#yddTopBorderlr .ydd-sp{position:absolute;top:2px;height:0;overflow:hidden}.ydd-icon{left:5px;width:17px;padding:0px 0px 0px 0px;padding-top:17px;background-position:-16px -44px}.ydd-close{right:5px;width:16px;padding-top:16px;background-position:left -44px}#yddKeyTitle{float:left;text-decoration:none}#yddMiddle{display:block;margin-bottom:10px}.ydd-tabs{display:block;margin:5px 0;padding:0 5px;height:18px;border-bottom:1px solid}.ydd-tab{display:block;float:left;height:18px;margin:0 5px -1px 0;padding:0 4px;line-height:18px;border:1px solid;border-bottom:none}.ydd-trans-container{display:block;line-height:160%}.ydd-trans-container a{text-decoration:none;}#yddBottom{position:absolute;bottom:0;left:0;width:100%;height:22px;line-height:22px;overflow:hidden;background-position:left -22px}.ydd-padding010{padding:0 10px}#yddWrapper{color:#252525;z-index:10001;background:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ab20.png);}#yddContainer{background:#fff;border-color:#4b7598}#yddTopBorderlr{border-color:#f0f8fc}#yddWrapper .ydd-sp{background-image:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ydd-sprite.png)}#yddWrapper a,#yddWrapper a:hover,#yddWrapper a:visited{color:#50799b}#yddWrapper .ydd-tabs{color:#959595}.ydd-tabs,.ydd-tab{background:#fff;border-color:#d5e7f3}#yddBottom{color:#363636}#yddWrapper{min-width:250px;max-width:400px;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值