Spring 集成 Webservice功能
2012-11-05 19:07
381 查看
一、如何将spring 的bean 变成 webservice
1.编写类, 声明一些关键字@WebService 和 @WebMethod
2.在application-context.xml, 增加spring对 webservice的支持
org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter
3.将编写的类声明为spring管理的bean
4.通过访问地址http://localhost:9999/UserManageWebService?wsdl, 确认webservice是否配置正确
5.看见页面上显示如上面的信息,说明配置正确。
至此spring已经集成webservice完毕。
二、如何调用webservice
在jdk1.6环境中,有专用的命令wsimport 负责生成webservice客户端程序。
在服务开启的情况下,执行
wsimport -s <direcotry> http://localhost:9999/UserManageWebService?wsdl,
产生客户端程序,如下表。
2. 程序中 UserManageWebService和UserManageEndpoint是必须,其他可选。
UserManageWebService 是客户端入口程序。
UserManageEndpoint是webservice server端程序在本地的镜像接口文件。
3. 在Struts 的action 中直接引用UserManageWebService 即可调用webservice.
总结:
如何在客户端服务中将webservice引用配置到spring里,暂时未找到解决办法。
参考spring reference 中写法,测试没有通过,提示无法获得webservice。
使用xfire ,通过客户端程序虽然可以找到webservice,但是远端类的方法的参数无法正常传入,反馈总是空值(null).
1.编写类, 声明一些关键字@WebService 和 @WebMethod
package com.ulic.ults.systemmanage.webservice; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; import com.ulic.ults.core.util.security.PasswordDigest; import com.ulic.ults.model.SysEmployee; import com.ulic.ults.systemmanage.service.SystemManageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.context.support.SpringBeanAutowiringSupport; @WebService(serviceName="UserManageWebService") public class UserManageEndpoint extends SpringBeanAutowiringSupport{ public UserManageEndpoint() { } @Autowired private SystemManageService systemManageService; @WebMethod public SysEmployee login(SysEmployee user) { SysEmployee usr = systemManageService.getSysEmployeeByUsername(user.getName()); if(usr!=null){ PasswordDigest pd = new PasswordDigest(); if(user.getPwd()!=null && (pd.digest(user.getPwd())).equals(usr.getPwd())){ return usr ; }else{ return null; } }else{ return null ; } } @WebMethod public String getTip(String str){ return str; } } |
org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter
<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter"> <property name="baseAddress" value="http://localhost:9999/"/> </bean> |
<bean id="userManageEndpoint" class="com.ulic.ults.systemmanage.webservice.UserManageEndpoint"/> |
<?xml version="1.0" encoding="UTF-8"?> <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --> <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --> -<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.systemmanage.ults.ulic.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.systemmanage.ults.ulic.com/" name="UserManageWebService"> -<types> -<xsd:schema> <xsd:importnamespace="http://webservice.systemmanage.ults.ulic.com/" schemaLocation="http://localhost:9999/UserManageWebService?xsd=1" /> </xsd:schema> </types> -<message name="login"> <partname="parameters" element="tns:login" /> </message> -<message name="loginResponse"> <partname="parameters" element="tns:loginResponse" /> </message> -<message name="getTip"> <partname="parameters" element="tns:getTip" /> </message> -<message name="getTipResponse"> <partname="parameters" element="tns:getTipResponse" /> </message> -<portType name="UserManageEndpoint"> -<operation name="login"> <inputmessage="tns:login" /> <outputmessage="tns:loginResponse" /> </operation> -<operation name="getTip"> <inputmessage="tns:getTip" /> <outputmessage="tns:getTipResponse" /> </operation> </portType> -<binding name="UserManageEndpointPortBinding" type="tns:UserManageEndpoint"> <soap:bindingtransport="http://schemas.xmlsoap.org/soap/http" style="document" /> -<operation name="login"> <soap:operationsoapAction="" /> -<input> <soap:bodyuse="literal" /> </input> -<output> <soap:bodyuse="literal" /> </output> </operation> -<operation name="getTip"> <soap:operationsoapAction="" /> -<input> <soap:bodyuse="literal" /> </input> -<output> <soap:bodyuse="literal" /> </output> </operation> </binding> -<service name="UserManageWebService"> -<port name="UserManageEndpointPort" binding="tns:UserManageEndpointPortBinding"> <soap:addresslocation="http://localhost:9999/UserManageWebService" /> </port> </service> </definitions> |
至此spring已经集成webservice完毕。
二、如何调用webservice
在jdk1.6环境中,有专用的命令wsimport 负责生成webservice客户端程序。
在服务开启的情况下,执行
wsimport -s <direcotry> http://localhost:9999/UserManageWebService?wsdl,
产生客户端程序,如下表。
2. 程序中 UserManageWebService和UserManageEndpoint是必须,其他可选。
UserManageWebService 是客户端入口程序。
UserManageEndpoint是webservice server端程序在本地的镜像接口文件。
3. 在Struts 的action 中直接引用UserManageWebService 即可调用webservice.
public String login() throws Exception{ UserManageWebService umc = new UserManageWebService(); String tip = u.getUserManageEndpointPort().getTip("I do"); System.out.println(tip); return SUCCESS; } |
如何在客户端服务中将webservice引用配置到spring里,暂时未找到解决办法。
参考spring reference 中写法,测试没有通过,提示无法获得webservice。
<bean id="accountWebService" class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean"> <property name="serviceInterface" value="example.RemoteAccountService"/> <property name="wsdlDocumentUrl" value="http://localhost:8080/account/services/accountService?WSDL"/> <property name="namespaceUri" value="http://localhost:8080/account/services/accountService"/> <property name="serviceName" value="AccountService"/> <property name="portName" value="AccountPort"/> </bean> |
相关文章推荐
- spring如何集成cxf实现webservice接口功能详解
- jquery + json + springMVC集成在controller中实现Ajax功能
- java web项目(spring项目)中集成webservice ,实现对外开放接口
- xfire集成spring构建webservice
- Spring集成XFire的WebService实例
- 使用CXF与Spring集成实现RESTFul WebService
- spring集成shiro实现登录认证自定义验证功能(认证采用国密SM4算法)
- 基于Maven环境进行Spring集成CXF WebService框架
- WebService-06-CXF与Spring集成
- Spring第12篇—— Spring对Hibernate的SessionFactory的集成功能
- springmvc webservice的2种用法,xstream以及axis2 集成spring发布服务
- jquery + json + springMVC集成在controller中实现Ajax功能
- 教你一步步用Spring集成XFire开发WebService
- WebService之Axis2系列教程(八)Axis2与Spring集成发布
- Spring Boot项目与Docker集成完成打包,打镜像及推送至镜像库的功能
- SpringBoot集成Mybatis并具有分页功能PageHelper
- Spring/Spring Boot微服务项目 集成Druid 实现监控功能
- WebService之Axis2系列教程(九)Axis2与Spring集成传递对象
- WebService-06-CXF与Spring集成
- 几种常用的webservice客户端和spring集成的方法