HttpInvoker

spring httpinvoker client can not find the service url

断了今生、忘了曾经 提交于 2019-12-13 04:03:18
问题 I have following configuration for the web application. web.xml <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:mail-application-context.xml .... </context-param> .... <servlet> <servlet-name>mailbox</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mailbox</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> mailbox

HttpClient timeout

孤街浪徒 提交于 2019-12-12 10:16:55
问题 I have a client server app using spring HttpInvokers. I am struggling with the timeouts. I see other threads regarding this but no clear answers. As far as I know the readTimeout is supposed to control the length of a transaction after it has already connected. I have made this very long because some processes such as report requests take time to run. This has worked fine for a long period of time now. Now the problem is that sometimes the internet connection fails or blips out at the moment

RMI、Hessian、Burlap、Httpinvoker、WebService的比较

╄→гoц情女王★ 提交于 2019-12-05 08:23:52
一、综述 本文比较了RMI、Hessian、Burlap、Httpinvoker、WebService5这种通讯协议的在不同的数据结构和不同数据量时的传输性能。 RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。 Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。 Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。 Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。 测试结果显示,几种协议的通讯效率依次为: RMI > Httpinvoker >= Hessian >> Burlap>> web service RMI不愧是JAVA的首选远程调用协议,非常高效稳定,特别是在大数据量的情况下,与其他通讯协议的差距尤为明显。 HttpInvoker使用java的序列化技术传输对象,与RMI在本质上是一致的。从效率上看,两者也相差无几,HttpInvoker与RMI的传输时间基本持平。 Hessian在传输少量对象时,比RMI还要快速高效

SPRING注解发布RMI/HTTPInvoker/Hessian/Burlap服务

老子叫甜甜 提交于 2019-12-04 08:30:30
最近做系统重构,计划将多个系统的公共部分抽取出来作为一项公共服务,为以后项目维护和横向扩展奠定基础。 常用的服务发布方式有RMI / HTTPInvoker / Hessian / Burlap,关于这几类java远程服务的性能比较和优缺点大家可参考:http://www.cnblogs.com/jifeng/archive/2011/07/20/2111183.html ,本文着重讲解怎样使用自定的注解标签,结合SPRING将服务方便的发布出去。 一、 Maven配置 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version

spring httpinvoker添加服务端安全认证策略

泪湿孤枕 提交于 2019-11-30 18:05:40
1 背景 正在经手的项目的web应用之间是通过spring的controller方式暴露接口,然后使用httpClient进行访问。普普通通的增删改查功能也得写上七八个方法才能实现,实在是写到心累。于是乎想要增加一种远程调用方式,本着尽量遵循原有安全验证策略的原则,对httpinvoker做了些小的调整。不过方案最终被负责人否了,只能继续写可爱的httpClient方法。只好抹去业务逻辑,把代码变成博客安安静静的躺在知识库里 。 2 思路与实现 通过对源代码的解读,发现spring和httpinvoker在进行远程调用时,主要是通过RemoteInvocation这个类来传递参数。于是调整的思路就是借助这个类传递我们的认证信息 ,在服务端读取的同时进行安全认证。以达到最终的目的。 首先是自定义安全认证信息类,这个类在客户端负责存放安全认证信息和生成安全密钥,在服务端负责解密: /** * HttpInvoker调用验证信息类 */ public class MyHttpInvokerAuthInfo { private static final Logger LOGGER = LoggerFactory.getLogger(MyHttpInvokerAuthInfo.class); //用户名KEY public static final String USERNAME_KEY =

Spring中HttpInvoker远程调用使用实例

好久不见. 提交于 2019-11-29 14:34:47
代码结构图如下: 客户端通过Spring的HttpInvoker,完成对远程函数的调用。涉及的类有: 客户端调用User类的服务UserService,完成对实现类UserServiceImpl的addUser(User u)方法调用。其中User类为普通Pojo对象,UserService为接口,UserServiceImpl为UserService的具体实现。代码如下: public interface UserService { void addUser(User u); } public class UserServiceImpl implements UserService { public void addUser(User u) { System.out.println("add user ["+u.getUsername()+ "] ok !!!"); } } 客户端调用时,主方法代码为: public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] {"ApplicationContext.xml" }); UserService us =