`

通过Spring进行远程服务访问

    博客分类:
  • Java
阅读更多

最近在做一个项目开发框架.前台使用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 代码
  1. public class HelloWorldImpl implements IHelloWorld {   
  2.     public String sayHello(String str) {   
  3.         return str +  " ,  欢迎使用Spring远程服务访问..."  
  4.     }   
  5. }   

 

java 代码
  1. public interface IHelloWorld {    
  2.     public  String sayHello(String str);   
  3. }   
分享到:
评论
8 楼 jvincent 2007-03-05  
我使用了自定义jdk安装包.客户端安装的是修改过策略文件的jdk..
7 楼 joachimz 2007-03-05  
问题是如何修改客户端的policy的?
6 楼 jvincent 2007-03-02  
我是把applet的访问策略放开了.
grant {
permission java.security.AllPermission;
};
5 楼 joachimz 2007-03-02  
请问LZ: applet访问本地资源的策略 是如何做的?

我这里做法是对jar签名后,Applet修伽自己policy文件,添加例如操作本地硬盘的权限等。但是第一次使用,需要把IE关掉重新进入。比较不爽。
4 楼 jvincent 2007-03-02  
目前还没有条件进行大规模的数据测试..可以想到的是Applet作为客户端由于要下载代码到客户端肯定会影响效率.但如果可以进行代码缓存,就可以处理这个问题.使只有第一次运行时候会慢,下次就会好很多...
3 楼 retreat 2007-03-02  
有测试数据吗?效率如何
2 楼 jvincent 2007-03-02  
加上了....
1 楼 daquan198163 2007-03-01  
clientContext.xml没贴出来

相关推荐

    Spring 实现远程访问详解——rmi

    Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,...

    Spring 实现远程访问详解——httpinvoker

    上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...

    Spring 实现远程访问详解——httpclient

    本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问流程 1) 服务器在控制器定义远程访问请求映射路径 2) 客户端通过apache httpclient的...

    spring远程调用简单实例

    远程调用是指应用程序的不同组件或服务之间,通过网络进行通信的一种方式。Spring支持多种远程调用协议,如RMI(Remote Method Invocation)、Hessian、 Burlap以及HTTP Invoker等。这些协议允许我们跨越网络边界,...

    基于Spring的远程访问与Web Service

    基于Spring的远程访问与Web Service

    Spring 远程调用 -- C# 访问java WEB 服务

    描述中提到的"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整合Hessian访问远程服务

    Spring通过其强大的IoC(Inversion of Control)容器管理服务和客户端,而Hessian则提供了一种二进制的序列化方式,使得远程服务调用更为高效。整合这两者,我们可以方便地在Spring配置文件中定义服务接口和其实现,...

    Spring远程调用使用http方式

    首先,我们需要理解什么是Spring远程调用。Spring Remote提供了一种机制,使得应用程序能够跨越网络边界调用其他服务的方法,仿佛它们是在同一进程中执行一样。HTTP远程调用是Spring Remote的一种实现方式,通过HTTP...

    Spring 实现远程访问详解——webservice

    Spring Web Services 是基于 Spring 框架的 Web 服务框架,主要侧重于基于文档驱动的Web服务,提供 SOAP 服务开发,允许通过多种方式创建 Web 服务。本章利用Apache CXF构建和开发webservice. 1. webservice远程...

    Flex入门源码 远程java访问 spring集成

    远程访问是Flex客户端与Java服务器交互的核心部分。Flex支持多种远程调用协议,如AMF(Action Message Format)和HTTPService。AMF是一种高效的数据交换格式,允许客户端和服务器之间快速传输复杂的数据结构,而...

    Spring 实现远程访问详解——jms和activemq

    前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. ...

    Dubbo无法访问远程Zookeeper已注册服务的问题解决方案

    然而,当我们将Zookeeper和生产者放到远程服务器上,然后消费者在访问消费时,可能会出现无法找到服务的问题。 内网环境使用情况 ------------- 在内网环境中,我们可以使用以下代码来配置生产者和消费者: 生产...

    springcloud feign 服务消费者 类似 webservice

    在Spring Cloud的环境中,Feign会自动发现服务提供者的位置(通过Eureka、Consul等服务注册与发现组件),并创建一个代理对象来执行这些方法,实现了透明化的远程调用。 除了基本的HTTP请求,Feign还支持更多的特性...

    SSH2 java连接远程服务器框架

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java中,实现SSH2连接远程服务器的功能通常需要借助第三方库,如JSch或Apache MINA。本教程将详细介绍如何使用Java通过...

    SpringCloud我服务基础教程

    - **架构特点**: 根据业务需求将整个系统拆分成多个子系统(服务),每个子系统负责一部分业务逻辑,并通过RPC远程调用技术实现子系统间的通信。 - **优点**: - 模块间耦合度低,便于单独开发和维护。 - 可以由...

    集成Spring和Aglets的远程数据库访问技术.doc

    集成Spring和Aglets的远程数据库访问技术

    webservice,通过spring mybiatis 访问数据库mysql

    通过这个项目,开发者不仅可以学习到如何使用Spring集成MyBatis进行数据库操作,还能掌握创建和消费WebService的方法,同时加深对MySQL数据库管理的理解。这是一项实用的技能,对于开发分布式系统、跨平台应用具有很...

Global site tag (gtag.js) - Google Analytics