实体
package com.micc.entity; import java.io.Serializable; import java.util.Date; public class Finger implements Serializable { /** */ private static final long serialVersionUID = 137535894213747943L; /** 手头的数据 */ private byte[] fingerData; private float data1; private double data2; private Date data3; public Date getData3() { return data3; } public void setData3(Date data3) { this.data3 = data3; } public byte[] getFingerData() { return fingerData; } public void setFingerData(byte[] fingerData) { this.fingerData = fingerData; } public float getData1() { return data1; } public void setData1(float data1) { this.data1 = data1; } public double getData2() { return data2; } public void setData2(double data2) { this.data2 = data2; } }
package com.micc.entity; import java.io.Serializable; public class Micc implements Serializable { /** */ private static final long serialVersionUID = 6419383801409398601L; private long pw; public long getPw() { return pw; } public void setPw(long pw) { this.pw = pw; } }
package com.micc.entity; import java.io.Serializable; import java.util.Date; import java.util.List; public class Person implements Serializable { /** */ private static final long serialVersionUID = 3677113821106894243L; /** 手指 */ private Finger finger; /** 年龄 */ private int age; /** 账户 */ private List<Micc> account; /** 姓名 */ private String name; /** 时间 */ private Date date; public Finger getFinger() { return finger; } public void setFinger(Finger finger) { this.finger = finger; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List<Micc> getAccount() { return account; } public void setAccount(List<Micc> account) { this.account = account; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
接口及实现
package com.micc.service; import java.util.List; import com.micc.entity.Finger; import com.micc.entity.Micc; public interface ITestService { /** * @param p * @return */ Finger getPersonFinger(String p); /** * * * @param id * @return */ List<Micc> getPersonAccount(String id); }
package com.micc.service.spring; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.micc.entity.Finger; import com.micc.entity.Micc; import com.micc.entity.Person; import com.micc.service.ITestService; public class SpringTestService implements ITestService { /** * @see com.micc.axisserver.ITestService.ITestAxisService#getPersonFinger(java.lang.String) */ @Override public Finger getPersonFinger(String id) { Person p = new Person(); Finger f= new Finger(); f.setData1(2.0f); f.setData2(2.0D); byte[] b= new byte[1]; b[0] = 1; f.setFingerData(b); f.setData3(new Date()); p.setFinger(f); return p.getFinger(); } /** * @see com.micc.axisserver.ITestService.ITestAxisService#getPersonAccount(java.lang.String) */ @Override public List<Micc> getPersonAccount(String id) { Person p = new Person(); List<Micc> l= new ArrayList<Micc>(); Micc m1 = new Micc(); m1.setPw(10l); l.add(m1); Micc m2 = new Micc(); m2.setPw(11l); l.add(m2); p.setAccount(l); return p.getAccount(); } }
(一)axis
1服务端
package com.micc.axisserver.webservice; import java.util.List; import org.springframework.remoting.jaxrpc.ServletEndpointSupport; import com.micc.entity.Finger; import com.micc.entity.Micc; import com.micc.service.ITestService; public class TestAxisService extends ServletEndpointSupport implements ITestService { private ITestService axisService; /** * @see org.springframework.remoting.jaxrpc.ServletEndpointSupport#onInit() */ protected void onInit() { this.axisService = (ITestService) getWebApplicationContext() .getBean("axisService"); } /** * @see com.micc.axisserver.ITestService.ITestAxisService#getPersonFinger(java.lang.String) */ @Override public Finger getPersonFinger(String id) { return this.axisService.getPersonFinger(id); } /** * @see com.micc.axisserver.ITestService.ITestAxisService#getPersonAccount(java.lang.String) */ @Override public List<Micc> getPersonAccount(String id) { return this.axisService.getPersonAccount(id); } }
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns="http://xml.apache.org/axis/wsdd/"> <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper" /> <service name="TAxisWebService" provider="java:RPC"> <parameter name="allowedMethods" value="getPersonFinger,getPersonAccount" /> <parameter name="className" value="com.micc.axisserver.webservice.TestAxisService" /> <beanMapping qname="myNS:Finger" xmlns:myNS="TAxisWebService" languageSpecificType="java:com.micc.entity.Finger" encodingStyle=" http://schemas.xmlsoap.org/soap/encoding/" serializer=" org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer=" org.apache.axis.encoding.ser.BeanDeserializerFactory"> </beanMapping> <beanMapping qname="myNS:Micc" xmlns:myNS="TAxisWebService" encodingStyle=" http://schemas.xmlsoap.org/soap/encoding/" serializer=" org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer=" org.apache.axis.encoding.ser.BeanDeserializerFactory" languageSpecificType="java:com.micc.entity.Micc"> </beanMapping> <beanMapping qname="myNS:Person" xmlns:myNS="TAxisWebService" encodingStyle=" http://schemas.xmlsoap.org/soap/encoding/" serializer=" org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer=" org.apache.axis.encoding.ser.BeanDeserializerFactory" languageSpecificType="java:com.micc.entity.Person"> </beanMapping> </service> <transport name="http"> <requestFlow> <handler type="URLMapper" /> </requestFlow> </transport> </deployment>
<listener> <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class> </listener> <servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping>
2客户端
package test; import java.util.List; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import org.apache.axis.Constants; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.encoding.ser.BeanSerializerFactory; import com.micc.entity.Finger; import com.micc.entity.Micc; public class TestAxisWs { /** * @param args */ @SuppressWarnings("unchecked") public static void main(String[] args) { try { String wsdlUrl = "http://localhost:8080/webservice/services/TAxisWebService?wsdl"; String nameSpaceUri = "http://localhost:8080/webservice/services/TAxisWebService"; // 创建调用对象 Service service = new Service(); Call call = null; call = (Call) service.createCall(); System.out.println(">>>getPersonFinger"); call.setOperationName(new QName(nameSpaceUri, "getPersonFinger")); call.setTargetEndpointAddress(new java.net.URL(wsdlUrl)); QName qn1 = new QName("TAxisWebService", "Finger"); call.registerTypeMapping(Finger.class, qn1, new BeanSerializerFactory(Finger.class, qn1), new BeanDeserializerFactory(Finger.class, qn1)); call.addParameter("p", Constants.XSD_STRING, ParameterMode.IN); call.setReturnType(new QName(nameSpaceUri), Finger.class); call.setReturnClass(Finger.class); Finger ret1 = (Finger) call.invoke(new Object[] { "ABC" }); System.out.println("return value is " + ret1); System.out.println(">>>getPersonAccount"); call.setOperationName(new QName(nameSpaceUri, "getPersonAccount")); call.setTargetEndpointAddress(new java.net.URL(wsdlUrl)); QName qn2 = new QName("TAxisWebService", "Micc"); call.registerTypeMapping(Micc.class, qn2, new BeanSerializerFactory(Micc.class, qn2), new BeanDeserializerFactory(Micc.class, qn2)); call.setReturnType(new QName(nameSpaceUri), List.class); call.setReturnClass(List.class); List<Micc> ret2 = (List<Micc>) call.invoke(new Object[] { "ABC" }); System.out.println("return value is " + ret2); } catch (Exception e) { e.printStackTrace(); } } }
(二)httpinvoker
1服务端
<!-- 将业务服务bean暴露成远程服务 --> <bean name="/TestService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <!-- 指定需要暴露的业务服务bean --> <property name="service" ref="testService" /> <!-- 指定暴露的远程服务实现的接口 --> <property name="serviceInterface" value="com.micc.service.ITestService" /> </bean>
<servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/remoting/*</url-pattern> </servlet-mapping>
2客户端
<!-- 配置连接远程服务的bean --> <bean id="testService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> <!-- 远程服务的url --> <property name="serviceUrl" value="http://localhost:8080/webservice/remoting/TestService" /> <!-- 远程服务所实现的接口 --> <property name="serviceInterface" value="com.micc.service.ITestService" /> <!-- 指定使用Commons HttpClient功能 --> <property name="httpInvokerRequestExecutor"> <bean class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor" /> </property> </bean>
package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.micc.service.ITestService; public class TestHttpInvoker { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("/httpinvoker.cfg.xml"); ITestService test = (ITestService) context.getBean("testService"); System.out.println(">>>getPersonFinger"); System.out.println("return value is " + test.getPersonFinger("11")); System.out.println(">>>getPersonAccount"); System.out.println("return value is " + test.getPersonAccount("11")); } }
发表评论
-
spring + shiro
2012-07-24 11:20 011111 -
spring properties
2011-03-22 10:07 1719jingbo2759 的 spring 引用propertie ... -
hibernate cascade
2011-02-18 09:45 626Hibernate Cascade属性的用法 all :: ... -
jar命令
2010-12-23 09:35 604常常在网上看到有人询 ... -
dom
2010-10-20 10:12 718作者:康董 喜欢Web前端开发的,热爱javascript与 ... -
jvm参数
2010-08-27 17:18 1423jdk1.4.2 JVM官方地址:http://java.su ... -
hibernate any
2010-07-26 12:19 931Hibernate中any元素的应用 ... -
hibernate单向多对多
2010-07-26 12:17 778Hibernate单向多对多关联。如:一个学生对应多门课程,一 ... -
spring事务
2010-03-17 08:37 807根据代理机制不同,有以下几种配置方式: 先定义一个DAO ... -
hibernate中的update等方法为何除了object外还有一个entityName参数
2009-10-19 11:59 1724hibernate 3中的update方法有个重载 upda ... -
SimpleFormController处理流程
2009-09-22 18:10 1084SimpleFormController往上繼承自Abstra ... -
spring DispatcherServlet建立会话分析
2009-09-20 22:56 1620<servlet> <ser ... -
spring包详解
2009-09-16 16:06 957spring.jar是包含有完整发 ...
相关推荐
Hessian、HttpInvoker、XFire和Axis是四种常见的远程调用框架,它们各自有不同的特性和应用场景。 Hessian是一种轻量级的二进制RPC协议,它通过HTTP进行传输,减少了网络开销,提高了服务调用效率。Hessian提供了...
3. 创建一个客户端应用程序,可以是另一个Java项目,使用AXIS2的Stub类来调用远程WebService。 **步骤6:调用WebService** 1. 在客户端项目中,使用AXIS2的Stub类(由WSDL生成)来实例化服务代理。 2. 通过代理对象...
axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...
标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...
这样,Spring会自动创建一个代理对象,用于调用远程服务。 4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis...
整合Spring和Axis2的主要目的是利用Spring的灵活性和管理能力来控制Axis2的生命周期,以及通过Spring的IoC容器管理Web服务的部署和调用。这样可以避免在代码中硬编码Web服务客户端和服务器端的实例化,使得代码更加...
本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解发布Web服务的过程: 1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web...
标题中的“spring-axis2-test.rar_Axis2 Spring3_axis2_axis2 spring3_axis2 s”指的是一个关于Spring和Axis2集成的示例项目,它包含了一组用于演示如何在Spring框架中使用Apache Axis2来开发和部署Web服务的源代码...
Spring 集成 AXIS2 的 Web service 配置方法 Spring 是一个流行的 Java 应用程序框架,它提供了一个灵活的方式来构建企业级应用程序。AXIS2 是一个流行的 Web Service 引擎,它提供了一个强大的方式来构建 Web ...
CXF与Axis2框架区别详解 CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2...
总的来说,Java和Axis2的结合提供了一种强大而灵活的方式来调用Web服务,允许开发者轻松地集成远程功能到自己的应用程序中。通过理解这些概念和实践,你可以更好地利用Web服务接口,提升应用的扩展性和互操作性。
在本文中,我们将深入探讨如何将Apache Axis2与Spring Boot集成,以构建一个...这个实例展示了如何在Spring Boot应用中集成和调用Axis2服务,通过理解这些关键步骤,你可以根据需求扩展和定制自己的Web服务解决方案。
4. **调用服务**: 使用Stub实例的方法调用远程服务,传递参数并接收返回值。 在实际应用中,为了调用Web服务,我们通常需要引用一系列的Axis2相关的jar包。然而,这些jar包往往数量众多,可能会增加项目的体积。...
Spring整合Axis2经典案例解析 在Java Web服务开发中,Spring框架和Apache Axis2是两个重要的组件。Spring作为一款强大的企业级应用框架,提供了一种模块化、灵活的方式来构建应用程序,而Axis2则是Apache组织提供的...
在这个场景中,我们关注的是如何使用Apache CXF框架来调用由Axis2提供的接口服务。Apache CXF和Axis2都是流行的开放源码服务框架,它们各自在Web服务领域有着广泛的应用。 Apache CXF是一个强大的服务框架,它允许...
Axis1.x版本是较老的实现,而Axis2是其后续版本,提供了更好的性能和模块化设计。 ### 二、CXF客户端调用Axis服务端步骤 #### 1. 获取服务端WSDL 首先,你需要获取Axis服务端的WSDL(Web Service Definition ...
Spring 和 Axis2 是两个在Java世界中非常重要的技术框架,它们分别在企业级应用开发和服务化方面发挥着关键作用。Spring 是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)...
在IT行业中,开发Web服务是常见的任务,而Axis2和Spring框架的整合为开发者提供了强大的工具来实现这一目标。本文将深入探讨如何利用这两个技术来发布多个WebService,并着重讲解项目管理和整合过程。 首先,让我们...
【标题】"Spring3 + Axis2" 在Java世界中,Spring框架是企业级应用开发的首选,而Axis2则是Apache组织提供的一个强大的Web服务引擎,主要用于构建和部署Web服务。"Spring3 + Axis2"的组合是将Spring的依赖注入(DI...