`
smiky
  • 浏览: 257761 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

WebService与Spring结合

阅读更多

 

环境:aixs1_4  spring 2.0.8

1.构建webservice环境

axis的需要的包有:

 

axis.jar
activation.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j-1.5.1.jar
xalan.jar
xmlsec-1.4.3.jar

 在web.xml中添加:

 

<listener>
        <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
    </listener>
    
  <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AxisServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AdminServlet
    </servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>SOAPMonitorService</servlet-name>
    <servlet-class>
        org.apache.axis.monitor.SOAPMonitorService
    </servlet-class>
    <init-param>
      <param-name>SOAPMonitorPort</param-name>
      <param-value>5001</param-value>
    </init-param>
    <load-on-startup>100</load-on-startup>
  </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>

  <servlet-mapping>
    <servlet-name>SOAPMonitorService</servlet-name>
    <url-pattern>/SOAPMonitor</url-pattern>
  </servlet-mapping>

 <!-- uncomment this if you want the admin servlet -->
 <!--
  <servlet-mapping>
    <servlet-name>AdminServlet</servlet-name>
    <url-pattern>/servlet/AdminServlet</url-pattern>
  </servlet-mapping>
 -->
	 <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.实现提供服务器端功能的接口与类:(这里需要一个接口,在与spring结合时会用到,这里会提供一些方法供client调用)

在这里有一点要注意,返回的结果最好不要是List,大家可以看到下面的接口所有的方法返回值都是数组,大家可以试下两种方式的区别,当返回list时,生成人wsdl文件中不会有自定义定型的详细描述,如这里的HttpHistoryRecord,如果返回list的话,wsdl中只知道返回的数组中是一个Object,不会有任何它的描述信息,而返回数组时,

HttpHistoryRecord中所有的字段信息都会在wsdl中出现,client根据这些能生成对应的本地类

public interface OperatorHistoryRecord
{
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的http测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public HttpHistoryRecord[] findHttpHistoryByUrl(String startTime,String endTime,String ip,String httpUrl);

	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的http针对某个url的测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public HttpHistoryRecord[] findHttpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的ICMP测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public IcmpHistoryRecord[] findIcmpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp上行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpUpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp下行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpDownHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp上行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpUpHistory(String startTime,String endTime,String ip);
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp下行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpDownHistory(String startTime,String endTime,String ip);
	
}

 

public class OperatorHistoryRecordImpl implements OperatorHistoryRecord
{
	
	private TestingHistoryService testingHistoryService;
	
	
	
	public void setTestingHistoryService(TestingHistoryService testingHistoryService)
	{
		this.testingHistoryService = testingHistoryService;
	}

	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的http测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public HttpHistoryRecord[] findHttpHistoryByUrl(String startTime,String endTime,String ip,String httpUrl){
		List<HttpHistoryRecord> httpHistorys = testingHistoryService.getHttpHistoryByUrl(startTime, endTime, ip, httpUrl);
		return httpHistorys.toArray(new HttpHistoryRecord[0]);
	}

	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的http针对某个url的测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public HttpHistoryRecord[] findHttpHistory(String startTime,String endTime,String ip){
		List<HttpHistoryRecord> httpHistorys = testingHistoryService.getHttpHistory(startTime, endTime, ip);
		return httpHistorys.toArray(new HttpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的ICMP测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public IcmpHistoryRecord[] findIcmpHistory(String startTime,String endTime,String ip){
		List<IcmpHistoryRecord> icmpHistorys = testingHistoryService.getIcmpHistory(startTime, endTime, ip);
		return icmpHistorys.toArray(new IcmpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpHistory(String startTime,String endTime,String ip){
		List<TcpHistoryRecord> tcpHistorys = testingHistoryService.getTcpHistory(startTime, endTime, ip);
		return tcpHistorys.toArray(new TcpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp上行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpUpHistory(String startTime,String endTime,String ip){
		List<TcpHistoryRecord> tcpHistorys = testingHistoryService.getTcpUpHistory(startTime, endTime, ip);
		return tcpHistorys.toArray(new TcpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的tcp下行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public TcpHistoryRecord[] findTcpDownHistory(String startTime,String endTime,String ip){
		List<TcpHistoryRecord> tcpHistorys = testingHistoryService.getTcpDownHistory(startTime, endTime, ip);
		return tcpHistorys.toArray(new TcpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpHistory(String startTime,String endTime,String ip){
		List<UdpHistoryRecord> udpHistorys = testingHistoryService.getUdpHistory(startTime, endTime, ip);
		return udpHistorys.toArray(new UdpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp上行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpUpHistory(String startTime,String endTime,String ip){
		List<UdpHistoryRecord> udpHistorys = testingHistoryService.getUdpUpHistory(startTime, endTime, ip);
		return udpHistorys.toArray(new UdpHistoryRecord[0]);
	}
	
	/**
	 * 
	 * 功能简述:根据IP获取对应时间范围内的udp下行测试结果信息
	 * 功能详细描述:
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param ip	用户IP
	 * @return
	 */
	public UdpHistoryRecord[] findUdpDownHistory(String startTime,String endTime,String ip){
		List<UdpHistoryRecord> udpHistorys = testingHistoryService.getUdpDownHistory(startTime, endTime, ip);
		return udpHistorys.toArray(new UdpHistoryRecord[0]);
	}
	
}

 3.与spring结合(建一个类继承ServletEndpointSupport,当client请求webservice时,它会来管理相应的实现类,接着继承OperatorHistoryRecord)

 

/**
 * 功能简述:使用spring来管理soap对象
 * 功能详细描述:
 * @author 曾阁
 * @version [1.0,2011-3-18 上午10:31:40]
 */
public class SpringOperatorHistoryRecord extends ServletEndpointSupport implements OperatorHistoryRecord
{

	private OperatorHistoryRecord operatorHistoryRecord ;
	
	@Override
	protected void onInit() throws ServiceException
	{
		operatorHistoryRecord = (OperatorHistoryRecord)getApplicationContext().getBean("operatorHistoryRecord");
		super.onInit();
	}

	public IcmpHistoryRecord[] findIcmpHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findIcmpHistory(startTime, endTime, ip);
	}

	public TcpHistoryRecord[] findTcpHistory(String startTime, String endTime,
			String ip)
	{
		return operatorHistoryRecord.findTcpHistory(startTime, endTime, ip);
	}

	public HttpHistoryRecord[] findHttpHistoryByUrl(String startTime,
			String endTime, String ip, String httpUrl)
	{
		return operatorHistoryRecord.findHttpHistoryByUrl(startTime, endTime, ip, httpUrl);
	}

	public UdpHistoryRecord[] findUdpHistory(String startTime, String endTime,
			String ip)
	{
		return operatorHistoryRecord.findUdpHistory(startTime, endTime, ip);
	}

	public TcpHistoryRecord[] findTcpDownHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findTcpDownHistory(startTime, endTime, ip);
	}

	public TcpHistoryRecord[] findTcpUpHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findTcpUpHistory(startTime, endTime, ip);
	}

	public UdpHistoryRecord[] findUdpDownHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findUdpDownHistory(startTime, endTime, ip);
	}

	public UdpHistoryRecord[] findUdpUpHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findUdpUpHistory(startTime, endTime, ip);
	}

	public HttpHistoryRecord[] findHttpHistory(String startTime,
			String endTime, String ip)
	{
		return operatorHistoryRecord.findHttpHistory(startTime, endTime, ip);
	}

}

 spring配置文件:

 

<bean id="operatorHistoryRecord" class="com.vixtel.soap.server.OperatorHistoryRecordImpl"></bean>
<bean id="testingHistoryService" class="com.vixtel.netmanager.service.impl.TestingHistoryServiceImpl"></bean>

 operatorHistoryRecord为提供webservice功能的对象,它会用到testingHistoryService

4.生成webservice布署描述文件(deploy.wsdd)

在WEB-INF下面添加deploy.wsdd

 

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="OperatorHistoryRecord" provider="java:RPC">
 	<parameter name="className" value="com.vixtel.soap.server.SpringOperatorHistoryRecord"/>
	<parameter name="allowedMethods" value="*" />
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.HttpHistoryRecord" qname="myNS:HttpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.IcmpHistoryRecord" qname="myNS:IcmpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.TcpHistoryRecord" qname="myNS:TcpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.UdpHistoryRecord" qname="myNS:UdpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<parameter name="scope" value="request" />
 </service>
</deployment>

 这个文件用于描述提供的服务,如果没与spring结合的话

 

<parameter name="className" value="com.vixtel.soap.server.SpringOperatorHistoryRecord"/>
应该换成
<parameter name="className" value="com.vixtel.soap.server.OperatorHistoryRecordImpl"/>

 <parameter name="allowedMethods" value="*" />表示SpringOperatorHistoryRecord中所有的方法都用于提供服务,当然继承来的不算

 

<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.HttpHistoryRecord" qname="myNS:HttpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
用于描述自定义的类型,java:com.vixtel.soap.server.vo.HttpHistoryRecord表示类型,前面的java:不能少,后面的表示命名空间等等,不用太在意

 

此文件其实可以完全不要,因为最终它内部的的service内容会被添加到server-config.wsdd里面去,这才是最终用到的wsdd。一般会调用命令首先启动tomcat,进入WEB-INF目录下执行命令:

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd

这句命令执行后会在WEB-INF下面生成一个server-config.wsdd,并且会将deploy.wsdd的内容添加到server-config.wsdd之中。所以我们可以手动的将axis中的server-config.wsdd copy一份到WEB-INF下面,然后将deploy.wsdd中的内容添加到server-config.wsdd之中

 

server-config.wsdd

 

<?xml version="1.0" encoding="UTF-8"?>
<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="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="E:\zg\softInstall\Tomcat\webapps\axis\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <parameter name="sendXsiTypes" value="true"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service>
   <!--只有这一段是所需要的,这里只是将原始的server-config.wsdd复制过来,然后将所需要的内容粘在这了,所以deploy.wsdd是可以不要的,并且也不用执行什么命令了-->
 <service name="OperatorHistoryRecord" provider="java:RPC">
 	<parameter name="className" value="com.vixtel.soap.server.SpringOperatorHistoryRecord"/>
	<parameter name="allowedMethods" value="*" />
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.HttpHistoryRecord" qname="myNS:HttpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.IcmpHistoryRecord" qname="myNS:IcmpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.TcpHistoryRecord" qname="myNS:TcpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<beanMapping languageSpecificType="java:com.vixtel.soap.server.vo.UdpHistoryRecord" qname="myNS:UdpHistoryRecord" xmlns:myNS="urn:OperatorHistoryRecord"/>
	<parameter name="scope" value="request" />
 </service>
  
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
</deployment>

 

这样一个webservice就建好了,并与spring结合好了,启动tomcat,进入http://localhost:8080/project_name/services就能看到相应的webservice的名称,点击链接进去就能看到对应的wsdl文件,用它来生成client调用的对象

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java开发常用jar包之webservice+spring.rar

    当我们将Webservice与Spring结合使用时,Spring的IOC(Inversion of Control)容器可以管理Webservice的生命周期,提供更灵活的服务注册和查找方式。例如,我们可以使用Spring的JAX-WS支持来创建和部署Webservice,...

    webservice CXF结合Spring所需jar包

    将CXF与Spring结合,可以利用Spring的IoC容器管理和配置Web服务,使得服务的创建、部署和测试更加便捷。 在标题中提到的"webservice CXF结合Spring所需jar包",这是开发过程中必不可少的依赖。以下是一些关键的jar...

    WebService验证与Spring整合

    4. **Spring MVC与Web服务的结合**:如果你的应用使用了Spring MVC,那么可以将Web服务作为一个控制器方法,这样可以直接利用Spring MVC的验证、数据绑定和异常处理能力。 5. **Spring的配置**:整合Spring和...

    webservice + spring + hibernate

    在IT行业中,Web服务、Spring框架和Hibernate ORM工具的结合使用是构建高效、可扩展的企业级应用程序的常见方式。这三个技术的融合,能够帮助开发者实现数据持久化、业务逻辑处理以及远程服务交互的一体化解决方案。...

    Restful WebService + Spring

    总的来说,"Restful WebService + Spring"的结合使得开发人员能够利用Spring的强大功能和RESTful的简洁设计原则,构建高效、可维护的Web服务。通过合理地组织资源、利用HTTP方法和状态码,以及借助Spring的自动化...

    WebService与hibernate,spring整合实例

    总的来说,这个实例展示了如何在Java环境中使用XFire来创建和消费WebService,同时结合Hibernate进行数据持久化,利用Spring框架进行服务管理和依赖管理,形成一个完整的分布式系统解决方案。这对于我们理解和掌握...

    axis2+spring webservice

    描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...

    Apache CXF2+Spring2.5轻松实现WebService

    本教程将深入探讨如何利用Apache CXF 2与Spring 2.5来构建和使用WebService。 首先,让我们理解这两个组件的基本概念。Apache CXF是一个全面的服务框架,它支持多种Web服务规范,如SOAP、RESTful、WS-*等。它提供了...

    用XFire开发WebService+Spring注解

    【标题】"用XFire开发WebService+Spring注解"涉及的主要知识点是利用XFire框架创建Web服务,并结合Spring框架的注解进行服务的管理和集成。XFire是一个强大的Java Web Service实现,它允许开发者轻松地创建和消费...

    rest webservice demo spring

    8. **测试**: 对REST服务的测试通常使用HTTP客户端工具,如Postman,或者使用JUnit结合Spring的MockMVC进行单元测试。 这个"rest webservice demo spring"项目可能是为了展示如何在Spring环境中集成Jersey,创建...

    简单银行系统(webservice,springsecurity,ssh,ant,axis,ftl)

    【标题】"简单银行系统(webservice,springsecurity,ssh,ant,axis,ftl)" 提供的是一个基于多个核心技术构建的银行系统实例。这个项目涵盖了Web服务、安全框架、Java开发工具链以及模板引擎等多个方面的内容,对于学习...

    webservice7 spring的bean发布为webservice

    ### 使用Spring框架与Axis2发布JavaBean为WebService 在现代Web开发中,Spring框架因其强大的依赖注入和面向切面编程支持而备受青睐。通过结合Axis2的Spring感知特性,可以非常简便地将Spring管理下的JavaBean发布...

    Spring+webservice例子

    本示例"Spring+webservice例子"聚焦于如何结合Spring框架来实现Web服务,特别是侧重于提供全代码实现,不依赖外部库(LIB)。下面将详细介绍这两个技术及其结合使用的要点。 Spring框架是一个开源的应用框架,它...

    webservice客户端,整合spring

    Spring和CXF结合使用时,可以统一处理Web Service调用中的异常,将其转化为自定义的业务异常,便于应用层进行适配和处理。 9. **安全考虑**: 整合Spring Security和CXF,可以实现对Web Service调用的安全控制,...

    Spring 实现webService

    - Spring与Apache Axis的结合可以让开发者利用Spring的依赖注入(DI)和面向切面编程(AOP)特性,简化Web服务的开发和管理。这样可以将业务逻辑与服务接口解耦,提高代码的可维护性和测试性。 2. **服务端实现**...

    webservice xfire spring2.0完整实例

    在这个“webservice xfire spring2.0完整实例”中,我们将会探讨如何结合XFire 1.2.6和Spring 2.0来创建和消费Web服务。首先,我们需要理解Spring 2.0中的Web服务抽象层,即Spring Web Services模块。这个模块提供了...

    Spring_WebService源码

    4. **集成其他Spring模块**: 如Spring MVC,可以轻松地将Web服务与Web应用程序结合。 **五、实例分析** 1. 创建`schema.xsd`定义服务契约。 2. 使用`xjc`命令或IDE工具生成Java类。 3. 创建服务接口类,实现业务...

    webservice xfire整合spring(webservice配置采用注解)例子

    【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...

    CXF_WebService整合Spring

    【CXF WebService 整合 Spring】整合 CXF WebService 与 Spring 框架能够带来许多优势,例如更好的服务管理、依赖注入以及利用 Spring 的事务处理能力等。以下是整合过程中涉及的关键步骤和知识点: 1. **所需 jar ...

    spring+xfire( 编写webservice完整配置+案例)

    总之,Spring与XFire的结合提供了一种简洁、灵活的方式来创建和管理Web服务,使得开发者可以专注于业务逻辑,而不是底层的协议细节。虽然现在Spring社区更倾向于使用Spring-WS或其他现代的Web服务框架,如Apache CXF...

Global site tag (gtag.js) - Google Analytics