`
zhouhyc
  • 浏览: 3166 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring+webservice工程

阅读更多
服务器端

1.server-config.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <globalConfiguration>
        <parameter name="sendMultiRefs" value="true" />
        <parameter name="disablePrettyXML" value="true" />
        <parameter name="dotNetSoapEncFix" value="true" />
        <parameter name="enableNamespacePrefixOptimization" value="false" />
        <parameter name="sendXMLDeclaration" value="true" />
        <parameter name="sendXsiTypes" value="true" />
    </globalConfiguration>
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
    <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder" />

    <service name="myServerInfo" provider="java:RPC">
        <parameter    name="allowedMethods"    value="*" />
        <parameter    name="className"  value="yourCompany.remote.webservice.JaxRpcXXXService" />
        <beanMapping  qname="shortName:List"       xmlns:shortName="urn:shortName" languageSpecificType="java:java.util.List" />
        <beanMapping  qname="shortName:ArrayList"  xmlns:shortName="urn:shortName" languageSpecificType="java:java.util.ArrayList" />
        <beanMapping  qname="shortName:OneBean" xmlns:scion="urn:shortName" languageSpecificType="java:yourBeanPath.OneBean" />
         <arrayMapping qname="shortName:List"       xmlns:shortName="urn:shortName" languageSpecificType="java:java.util.List" innerType="java:yourBeanPath.OneBean" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </service>

    <transport name="http">
        <requestFlow>
            <handler type="URLMapper" />
            <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
        </requestFlow>
    </transport>

    <transport name="local">
        <responseFlow>
            <handler type="LocalResponder" />
        </responseFlow>
    </transport>

</deployment>

2.web.xml

<servlet>
        <servlet-name>axis</servlet-name>
        <servlet-class>
            org.apache.axis.transport.http.AxisServlet
        </servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>axis</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

3.代码层


import java.rmi.Remote;
public interface RemoteXXXService extends Remote {
    public  Object[] getXXX(String param);
}
----------------------------------------------------------------

import org.springframework.remoting.jaxrpc.ServletEndpointSupport;

import com.sanminasci.msportal.remote.RemoteServerInfoService;
import com.sanminasci.msportal.service.ManagerMuliMachineMap;

public class JaxRpcXXXService extends ServletEndpointSupport implements    RemoteXXXService {
    private XXXService xXX;
    protected void onInit() {
        xXX = (XXXService) getWebApplicationContext().getBean("xXX");
    }
    public  Object[] getXXX(String param) {
        return xXX.getXXX(param);
    }
}



客户端

1.spring配置文件(spring-application.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
        "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>WEB-INF/config.properties</value>
                <value>WEB-INF/log4j.properties</value>
            </list>
        </property>
    </bean>
 
    <bean id="myServerInfo" class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean" lazy-init="true">
        <property name="serviceFactoryClass">
            <value>org.apache.axis.client.ServiceFactory</value>
        </property>
        <property name="wsdlDocumentUrl">
            <value>http://${serverName}:${httpPort}${contextPath}/services/myServerInfo?wsdl</value>
        </property>
        <property name="namespaceUri">
            <value>http://${serverName}:${httpPort}${contextPath}/services/myServerInfo</value>
        </property>
        <property name="serviceName">
            <value>JaxRpcXXXService</value>
        </property>
        <property name="portName">
            <value>myServerInfo</value>
        </property>
        <property name="serviceInterface">
            <value>service.MyService</value>
        </property>
        <property name="servicePostProcessors">
            <list>
                <bean class="util.BeanMappingProcessor" />   
            </list>
        </property>   
    </bean>        
</beans>

BeanMappingProcessor.java


import java.util.ArrayList;
import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.encoding.TypeMapping;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import org.apache.log4j.Logger;
import org.springframework.remoting.jaxrpc.JaxRpcServicePostProcessor; 
public class BeanMappingProcessor implements    JaxRpcServicePostProcessor {     
    Logger logger = Logger.getLogger(this.getClass().getName()); 
    public static final String DEFAULT_ENCODING_STYLE_URI = "http://schemas.xmlsoap.org/soap/encoding/";  
    public static final String DEFAULT_TYPE_NAMESPACE_URI = "urn:shortName"; 
    private String encodingStyleUri = DEFAULT_ENCODING_STYLE_URI; 
    private String typeNamespaceUri = DEFAULT_TYPE_NAMESPACE_URI;
 
    public void setEncodingStyleUri(String encodingStyleUri) {
        this.encodingStyleUri = encodingStyleUri;
    }
      
    public void setTypeNamespaceUri(String typeNamespaceUri) {
        this.typeNamespaceUri = typeNamespaceUri;
    }

    public void postProcessJaxRpcService(Service service) {
        TypeMappingRegistry registry = service.getTypeMappingRegistry();
        TypeMapping mapping = registry.createTypeMapping();
        //core
        try{
        registerBeanMapping(mapping, List.class, "List");
        registerBeanMapping(mapping, ArrayList.class, "ArrayList");
        registerBeanMapping(mapping, OneBean.class, "OneBean");
        
        registry.register(this.encodingStyleUri, mapping);
        }catch(Exception e){
            logger.error("register:" + e.getMessage());
            e.printStackTrace();
        }
    }

    protected void registerBeanMapping(TypeMapping mapping, Class type,
            String name) {
        QName xmlType = new QName(this.typeNamespaceUri, name);
        mapping.register(type, xmlType,
                new BeanSerializerFactory(type, xmlType),
                new BeanDeserializerFactory(type, xmlType));
    }

}
分享到:
评论

相关推荐

    mybatis+spring MVC+webservice axis例子程序实现

    首先,该工程实现了spring MVC、mybatis、axis webservice功能 其次,这个工程很简单,只做了最简单的功能实现 再次,数据库要自己准备 最后,该工程里的src目录下,有一个readme.txt,请下载者仔细阅读,里面有...

    springboot+memcached+mybatis+shiro+webservice聚合工程架构

    此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式架构,内有具体代码,望大家一起学习交流,写博客因为太懒不愿意写 直接传了。请把解压后的java_memcached-release_2.6.3.jar和commons-pool-...

    spring+cxf 开发webservice

    【描述】"本Java工程实现了Spring+CXF快速开发Web Service,jar包齐全,可以直接在MyEclipse环境中进行二次开发。" 这个描述指出,提供的是一个完整的项目实例,包含了所有必要的库文件(jar包),意味着开发者无需...

    springboot+webservice搭建webservice服务端

    Spring Boot是一个流行的Java框架,用于简化Spring应用的创建和管理。本教程将讲解如何使用Spring Boot来搭建一个Web Service服务端,并介绍如何利用Java客户端进行调用。 ### 一、Spring Boot与Web Service ...

    Spring+xFire实现webService

    - **新建工程**:名为 `webservice_spring` 的项目,这是我们的 Web 服务端工程。 - **添加类库**:引入 xFire 相关的 JAR 包,如 `xfire-all-1.2.6.jar`,并将其放入 `WEB-INF/lib` 目录下。由于 xFire 已经集成...

    xfire集成spring+hiernate实现webservice样例工程

    【xfire集成spring+hibernate实现webservice样例工程】是一个典型的Java开发中的整合案例,它演示了如何将三个重要的技术框架——XFire、Spring和Hibernate有效地结合在一起,以构建一个提供Web服务的工程。这个工程...

    cxf+Spring实现webservice工程

    当我们谈论"CXF+Spring实现Web服务工程"时,我们实际上是在讨论如何利用Apache CXF框架和Spring框架来创建和消费Web服务。Apache CXF是一个强大的开源框架,它提供了多种方式来构建和部署Web服务,而Spring则以其...

    cxf+spring+tomat开发webservice所需jar包

    在开发Web服务时,CXF、Spring和Tomcat是三个重要的组件。让我们深入探讨这些技术以及它们如何协同工作创建一个有效的Web服务环境。...通过将这些jar包导入Web工程,开发者可以在Tomcat服务器上轻松部署和运行Web服务。

    CXF3.0.9+SPRING开发webservice例子

    当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...

    spring集成cxf,server发布webservice,client调用webservice

    使用spring集成cxf,在两个web project里发布及调用webservice server端使用spring+springmvc+mybatis+cxf,client端使用struts2+spring+hibernate+cxf 两个工程均为myeclipse project,包含所有除myeclipse自带以外...

    WebService与hibernate,spring整合实例

    在本实例中,我们关注的是如何将WebService与Hibernate(一个对象关系映射框架)和Spring(一个全面的企业级应用框架)整合。 首先,让我们了解每个组件的作用: 1. **WebService**:WebService通过SOAP(Simple ...

    CXF WebService整合Spring示例工程代码demo

    CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...

    ibatis+spring+cxf+mysql搭建的myWebservice服务端

    本项目利用ibatis、spring、cxf和mysql这四个关键技术,搭建了一个名为myWebservice的服务端,旨在提供灵活的数据交互和强大的服务功能。以下是对这些技术及其在项目中应用的详细解释: 1. **iBatis**:iBatis是一...

    webService工程

    【标题】"webService工程"涉及的技术栈是Web服务开发的核心组件,主要涵盖了Spring框架、CXF服务框架、Jackson JSON处理库、SLF4J日志接口与Logback实现以及BoneCP数据库连接池。以下是对这些关键技术的详细介绍: ...

    spring+xfire集成解决方案

    - **步骤**:在创建或修改WebService工程时,通过构建路径管理器移除或替换掉`spring-1.2.6.jar`。具体操作如下: 1. 在项目属性中找到“Java Build Path”选项。 2. 在Libraries选项卡中找到冲突的`spring-1.2.6...

    Spring+xFire+wss4j配置Helloworld完整版,Myeclipse项目服务端+客户端.rar

    这是一个完整的MyEclipse项目,包括服务端和客户端的工程,旨在帮助开发者快速理解和实践相关技术。 首先,Spring是一个极其流行的Java应用框架,它提供了全面的编程和配置模型,用于简化企业级应用的开发。在Web...

    spring webservice参考.pdf

    Spring WebService旨在简化Web服务的开发过程,它支持WSDL(Web Services Description Language)第一和第二版,提供了从Java接口到WSDL的自动生成,以及从WSDL到Java代码的逆向工程。它主要基于Apache CXF和JAX-WS...

    在Spring工程里利用CXF实现webservice的demo

    在Spring工程中,利用Apache CXF实现Web服务(WebService)是一项常见的任务,它允许应用程序通过网络交换数据和服务。本教程将深入探讨如何在Spring环境中集成并使用CXF来创建一个简单的WebService示例。 首先,...

    CXF结合Spring发布Json格式WebService示例

    本实例工程使用Apache CXF组件快速开发WebService。基于Spring框架,使用了Maven项目,但由于时间原因,只使用了Maven Project的框架,还是使用lib文件夹存放所需的cxf库,传入传出对象支持Json格式。

    cxf_spring 相关 jar

    在IT行业中,CXF和Spring框架的整合是创建高效、灵活的Web服务的重要途径。"cxf_spring 相关 jar"的标题暗示了这个压缩包包含的是用于整合CXF与Spring的Java库。让我们深入了解一下CXF、Spring以及它们如何协同工作...

Global site tag (gtag.js) - Google Analytics