服务器端
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));
}
}
分享到:
相关推荐
首先,该工程实现了spring MVC、mybatis、axis webservice功能 其次,这个工程很简单,只做了最简单的功能实现 再次,数据库要自己准备 最后,该工程里的src目录下,有一个readme.txt,请下载者仔细阅读,里面有...
此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式架构,内有具体代码,望大家一起学习交流,写博客因为太懒不愿意写 直接传了。请把解压后的java_memcached-release_2.6.3.jar和commons-pool-...
【描述】"本Java工程实现了Spring+CXF快速开发Web Service,jar包齐全,可以直接在MyEclipse环境中进行二次开发。" 这个描述指出,提供的是一个完整的项目实例,包含了所有必要的库文件(jar包),意味着开发者无需...
Spring Boot是一个流行的Java框架,用于简化Spring应用的创建和管理。本教程将讲解如何使用Spring Boot来搭建一个Web Service服务端,并介绍如何利用Java客户端进行调用。 ### 一、Spring Boot与Web Service ...
- **新建工程**:名为 `webservice_spring` 的项目,这是我们的 Web 服务端工程。 - **添加类库**:引入 xFire 相关的 JAR 包,如 `xfire-all-1.2.6.jar`,并将其放入 `WEB-INF/lib` 目录下。由于 xFire 已经集成...
【xfire集成spring+hibernate实现webservice样例工程】是一个典型的Java开发中的整合案例,它演示了如何将三个重要的技术框架——XFire、Spring和Hibernate有效地结合在一起,以构建一个提供Web服务的工程。这个工程...
当我们谈论"CXF+Spring实现Web服务工程"时,我们实际上是在讨论如何利用Apache CXF框架和Spring框架来创建和消费Web服务。Apache CXF是一个强大的开源框架,它提供了多种方式来构建和部署Web服务,而Spring则以其...
在开发Web服务时,CXF、Spring和Tomcat是三个重要的组件。让我们深入探讨这些技术以及它们如何协同工作创建一个有效的Web服务环境。...通过将这些jar包导入Web工程,开发者可以在Tomcat服务器上轻松部署和运行Web服务。
当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...
使用spring集成cxf,在两个web project里发布及调用webservice server端使用spring+springmvc+mybatis+cxf,client端使用struts2+spring+hibernate+cxf 两个工程均为myeclipse project,包含所有除myeclipse自带以外...
在本实例中,我们关注的是如何将WebService与Hibernate(一个对象关系映射框架)和Spring(一个全面的企业级应用框架)整合。 首先,让我们了解每个组件的作用: 1. **WebService**:WebService通过SOAP(Simple ...
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的服务端,旨在提供灵活的数据交互和强大的服务功能。以下是对这些技术及其在项目中应用的详细解释: 1. **iBatis**:iBatis是一...
【标题】"webService工程"涉及的技术栈是Web服务开发的核心组件,主要涵盖了Spring框架、CXF服务框架、Jackson JSON处理库、SLF4J日志接口与Logback实现以及BoneCP数据库连接池。以下是对这些关键技术的详细介绍: ...
- **步骤**:在创建或修改WebService工程时,通过构建路径管理器移除或替换掉`spring-1.2.6.jar`。具体操作如下: 1. 在项目属性中找到“Java Build Path”选项。 2. 在Libraries选项卡中找到冲突的`spring-1.2.6...
这是一个完整的MyEclipse项目,包括服务端和客户端的工程,旨在帮助开发者快速理解和实践相关技术。 首先,Spring是一个极其流行的Java应用框架,它提供了全面的编程和配置模型,用于简化企业级应用的开发。在Web...
Spring WebService旨在简化Web服务的开发过程,它支持WSDL(Web Services Description Language)第一和第二版,提供了从Java接口到WSDL的自动生成,以及从WSDL到Java代码的逆向工程。它主要基于Apache CXF和JAX-WS...
在Spring工程中,利用Apache CXF实现Web服务(WebService)是一项常见的任务,它允许应用程序通过网络交换数据和服务。本教程将深入探讨如何在Spring环境中集成并使用CXF来创建一个简单的WebService示例。 首先,...
本实例工程使用Apache CXF组件快速开发WebService。基于Spring框架,使用了Maven项目,但由于时间原因,只使用了Maven Project的框架,还是使用lib文件夹存放所需的cxf库,传入传出对象支持Json格式。
在IT行业中,CXF和Spring框架的整合是创建高效、灵活的Web服务的重要途径。"cxf_spring 相关 jar"的标题暗示了这个压缩包包含的是用于整合CXF与Spring的Java库。让我们深入了解一下CXF、Spring以及它们如何协同工作...