`

spring httpInvoke接口

阅读更多

 

有几个主要步骤:

  接口类与实现类省略:  

     接口:com.base.HttpinvokeInterface.java  接口方法:test()  

     实现类:com.impl.HttpinvokeService

1.Server端web.xml配置信息: 

a:一种DispatcherServlet方式,需要在servlet-name配置的spring.xml文件名必须和该名称一致

<servlet>

       <servlet-name>httpinvoke(名称必须与配置横杠前面文件名一样如:httpinvoke-servlet.xml,配置与web.xml在同一个目录)</servlet-name>

       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

</servlet>

<servlet-mapping>

      <servlet-name>httpinvoke</servlet-name>

      <url-pattern>/ httpinvoke/*(调用定义接口地址入口)</url-pattern>

</servlet-mapping>

b:另外一种HttpRequestHandlerServlet方式,无需保持spring配置文件名和当前参数一致。确保servlet-name中和spring的bean name一致

<servlet>

      <servlet-name>serviceBeanName</servlet-name>

      <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>

</servlet> 

<servlet-mapping>

      <servlet-name>serviceBeanName</servlet-name>

      <url-pattern>/ httpinvoke/serviceBeanName</url-pattern>

</servlet-mapping>

 

2.Server端Spring配置 httpinvoke-servlet.xml(1.a的配置对应的文件名,1.b 文件名无限制):

   <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>

 

     

     <bean name="/httpinvokeService"   //1.a方式配置

     <bean name="serviceBeanName"     //1.b方式配置

       class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">                       

        <property name="service">

            <ref bean=" httpinvokeService"/>

        </property>

        <property name="serviceInterface">

            <value>com.base.HttpinvokeInterface</value>

        </property>

    </bean>

    <baan id="httpinvokeService" class="com.impl.HttpinvokeService">

</beans>

 

3.Client端Spring配置:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="httpinvokeService"

class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">

<property name="serviceUrl" value="http://localhost:9111/CMS/ httpinvoke/ httpinvokeServiceService" />

<!-- 服务器IP地址:端口号/项目名称/(Server端web.xml中配置的<url-pattern>入口)/(服务器端配置的bean的name属性<bean name="/httpinvokeService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">......</bean>)-->     

<property name="serviceInterface" value="com.base. HttpinvokeInterface"/>

</bean>

</beans>

 

4.Client端测试:

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

import com.base.HttpinvokeInterface

 

public class Test {

 

/**

* @param args

*/

public static void main(String[] args) {

           ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring远程调用客户端配置.xml");   //读取配置文件

            HttpinvokeInterface service = (HttpinvokeInterface)applicationContext.getBean("httpinvokeService");   //通过接口得到服务器信息

           service.test();   //调用服务器端的方法

           System.out.println("远程调用,测试成功!");

}

 

}

 
 
0
0
分享到:
评论

相关推荐

    Spring HttpInvoke实现,以及效率提升!

    Spring HttpInvoke 是一个基于 Spring 框架的远程方法调用(RPC)解决方案,它允许你在分布式系统中透明地调用服务。这篇博客主要探讨了如何实现 Spring HttpInvoke 并提出了提高其效率的方法。 首先,我们需要理解...

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

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

    httpinvoker的使用实例

    然后,实现这个接口,并通过`@Service`注解标记为Spring Bean: ```java @Service public class HelloServiceImpl implements HelloService { @Override public String sayHello(String name) { return "Hello, ...

    SpringMvc简单入门

    上述配置中,`httpInvoke-dispatcher` 表示 Servlet 的名称,`org.springframework.web.servlet.DispatcherServlet` 是 `DispatcherServlet` 的全限定类名,`*.service` 表示任何以 `.service` 结尾的 URL 都将由 `...

    Java Dubbo面试及答案

    4. HTTP 协议:基于 Http 表单提交的远程调用协议,使用 Spring 的 HttpInvoke 实现。多个短连接,传输协议 HTTP,传入参数大小混合,提供者个数多于消费者,需要给应用程序和浏览器 JS 调用。 5. Hessian 协议:...

    Dubbo面试及答案(上).pdf

    4. **http协议**:基于Http表单提交,使用Spring的HttpInvoke实现,适用于提供者数量多于消费者的场景,适合应用程序和浏览器JS调用。 5. **hessian协议**:集成了Hessian服务,基于HTTP通讯,使用Servlet暴露服务...

    Dubbo服务框架面试题及答案.pdf

    - 使用Spring的HttpInvoke实现,适合提供者数量多于消费者的场景,尤其是需要为应用程序和浏览器JS调用的情况。基于HTTP的短连接传输。 5. **Hessian协议**: - 基于HTTP通讯,使用Servlet暴露服务,Dubbo内嵌...

    Dubbo面试.pdf

    4. http协议:使用基于Http表单提交的远程调用协议,通过Spring的HttpInvoke实现。它支持HTTP协议,适用于提供者数量多于消费者,需要支持应用程序和浏览器JS调用的场景。 5. hessian协议:基于Hessian服务,采用...

    JAVA面试_Dubbo常问面试题30个.pdf

    - 基于Http表单提交,使用Spring的HttpInvoke实现。 - 多个短连接,通过HTTP传输,适用于提供者多于消费者的场景,如Web应用和JavaScript调用。 5. **hessian协议**: - 集成了Hessian服务,基于HTTP通讯,使用...

    Dubbo面试题集合.pdf

    - **特点**:基于HTTP表单提交的远程调用协议,使用Spring的HttpInvoke实现。 - **应用场景**:适用于需要给应用程序和浏览器JS调用的场景。 - **优点**:简单易用,易于调试。 - **缺点**:性能不是最优,安全性...

    2021Java字节跳动面试题——面向字节_Dubbo(上).pdf

    - **特点**:基于Http表单提交的远程调用协议,使用Spring的HttpInvoke实现。 - **传输协议**:HTTP - **应用场景**:适用于需要给应用程序和浏览器JS调用的场景。 - **优点**:易于理解和使用。 - **缺点**:性能...

Global site tag (gtag.js) - Google Analytics