最近在做一个项目开发框架.前台使用Applet,服务器端最先考虑使用EJB3进行开发,但由于EJB采用的是RMI-IIOP协议进行底层数据传输,难于跨越防火墙,故考虑使用Spring提供的远程服务访问技术进行服务器端的编程.测试成功,记录下来..
环境:Eclipse3.2.2 JDK1.5 Spring2.0.2
1、由于客户端采用Applet,需要下载代码到客户端,简单起见,将所有的class都打包在一个jar包中,供客户端下载.以后考虑对下载的类进行缓存,以提高应用效率.
2、在IE中对applet进行配置,通过classid可以检测客户端的jre环境,如果不是需要的jdk版本,这里为1.5,则通过/Client下的客户端程序进行下载.由于应用定位于局域网中,下载一个20多M的程序应该不成问题..
3、applet访问本地资源的策略略过,有兴趣的可以留言....
下面主要介绍一下如果在Spring2.0.2中进行远程服务访问
1、定义客户端接口,此接口是暴露给客户端的....
接口中只有一个方法sayHello,作用是;根据客户端传入的str,传到服务器端连接一个字符串,再传到客户端.
2、定义一个类,实现IHelloWorld接口.
3、接下来就是通过xml文件进行组件的配置..
Spring的远程服务访问是通过org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter和org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean 两个类来实现的.HttpInvokerServiceExporter负责将定义的服务进行导出,是目标服务暴露出来.HttpInvokerProxyFactoryBean 负责客户端代理.将http的post请求定位到指定的服务.默认情况下,Spring使用J2SE的http功能.可以通过注入将commons的httpclient指定给HttpInvokerProxyFactoryBean..
步骤:
1、web.xml文件:添加org.springframework.web.context.ContextLoaderListener监听.定义一个org.springframework.web.servlet.DispatcherServlet
命名为 httpinvoker..之后当服务器启动是会自动到WEB-INF下寻找httpinvoker-servlet.xml文件进行bean初始化.
之后定义一个servlet-mapping,使所有以/http/结尾的请求全部定位到httpinvoker Servlet上
2、applicationContext.xml 定义一个Bean 初始化HelloWorldImpl.
3、httpinvoker-servlet.xml 定义两个Bean BeanNameUrlHandlerMapping用于根据BeanName进行映射...HttpInvokerServiceExporter用于远程服务导出.
4、以上三步就已经完成了远程服务的复制工作.以下实现客户端的调用配置.clientContext.xml用于配置客户端的访问..即指定服务器的地址、端口等基础信息.
5、最后就可以在代码进行初始化clientContext.xml文件,通过ctx.getBean(helloWorldService);来进行访问了.
java 代码
- public class HelloWorldImpl implements IHelloWorld {
- public String sayHello(String str) {
- return str + " , 欢迎使用Spring远程服务访问..."
- }
- }
java 代码
- public interface IHelloWorld {
- public String sayHello(String str);
- }
分享到:
相关推荐
Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,...
上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...
本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问流程 1) 服务器在控制器定义远程访问请求映射路径 2) 客户端通过apache httpclient的...
远程调用是指应用程序的不同组件或服务之间,通过网络进行通信的一种方式。Spring支持多种远程调用协议,如RMI(Remote Method Invocation)、Hessian、 Burlap以及HTTP Invoker等。这些协议允许我们跨越网络边界,...
基于Spring的远程访问与Web Service
描述中提到的"C# 访问java WEB 服务"是指使用C#客户端与Java Web服务进行交互。C#通常使用.NET Framework开发,而Java Web服务则基于JAX-WS(Java API for XML Web Services)或JAX-RS(Java API for RESTful Web ...
Spring通过其强大的IoC(Inversion of Control)容器管理服务和客户端,而Hessian则提供了一种二进制的序列化方式,使得远程服务调用更为高效。整合这两者,我们可以方便地在Spring配置文件中定义服务接口和其实现,...
首先,我们需要理解什么是Spring远程调用。Spring Remote提供了一种机制,使得应用程序能够跨越网络边界调用其他服务的方法,仿佛它们是在同一进程中执行一样。HTTP远程调用是Spring Remote的一种实现方式,通过HTTP...
Spring Web Services 是基于 Spring 框架的 Web 服务框架,主要侧重于基于文档驱动的Web服务,提供 SOAP 服务开发,允许通过多种方式创建 Web 服务。本章利用Apache CXF构建和开发webservice. 1. webservice远程...
远程访问是Flex客户端与Java服务器交互的核心部分。Flex支持多种远程调用协议,如AMF(Action Message Format)和HTTPService。AMF是一种高效的数据交换格式,允许客户端和服务器之间快速传输复杂的数据结构,而...
前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. ...
然而,当我们将Zookeeper和生产者放到远程服务器上,然后消费者在访问消费时,可能会出现无法找到服务的问题。 内网环境使用情况 ------------- 在内网环境中,我们可以使用以下代码来配置生产者和消费者: 生产...
在Spring Cloud的环境中,Feign会自动发现服务提供者的位置(通过Eureka、Consul等服务注册与发现组件),并创建一个代理对象来执行这些方法,实现了透明化的远程调用。 除了基本的HTTP请求,Feign还支持更多的特性...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java中,实现SSH2连接远程服务器的功能通常需要借助第三方库,如JSch或Apache MINA。本教程将详细介绍如何使用Java通过...
- **架构特点**: 根据业务需求将整个系统拆分成多个子系统(服务),每个子系统负责一部分业务逻辑,并通过RPC远程调用技术实现子系统间的通信。 - **优点**: - 模块间耦合度低,便于单独开发和维护。 - 可以由...
集成Spring和Aglets的远程数据库访问技术
通过这个项目,开发者不仅可以学习到如何使用Spring集成MyBatis进行数据库操作,还能掌握创建和消费WebService的方法,同时加深对MySQL数据库管理的理解。这是一项实用的技能,对于开发分布式系统、跨平台应用具有很...