`

spring与Ajax的整合

阅读更多
作者: qukmei  

保留原作的出处:http://www.iblog.com/index.php?op=ViewArticle&articleId=28581&blogId=1499

  eclipse resin axis1.4 spring

  spring在整合axis上还是很不错的。

1.   环境配置

1、 基本设置,略
2、 在eclipse中配置引入相应的Spring框架、axis包,略。
因为axis还有一些可选包,所以可以把一些可选包都引进来,虽然网上下载的axis1.4只有核心包,但通过happyaxis.jsp,可以把相关可选包都找到。

2.   场景描述

在本例中,我们要完成的是通过Web Service调用到Spring工程中的getMessage的方法,传入人名,然后返回相应的Say Hello to somebody的字符串,并将调用后的字符串打印到前台Application界面中。

3.   代码开发

在MyEclipse中建立一个新的J2EE的Web Project。
编写IHelloWorld接口文件,代码如下:
package com.test.www;
/**
* Spring工程中要使用的接口文件
*/
public interface IHelloWorld {
  public String getMessage(String name);
}


编写HelloWorldImpl实现文件,代码如下:
package com.test.www.impl;
import com.test.www.IHelloWorld;
/**
* Spring工程中要使用的接口文件
*/
public class HelloWorldImpl implements IHelloWorld{
  private String helloStr; //Spring中需要注入的字符串
/**
* 实现接口中的方法,得到Say Hello to <somebody>的字符串
*/
  public String getMessage(String name){
      return helloStr+":"+name;
  }
  public String getHelloStr() {
      return helloStr;
  }
  public void setHelloStr(String helloStr) {
      this.helloStr = helloStr;
  }
}


编写Web-INF下的Web工程文件Web.xml,具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <!—Spring框架需要引入的配置文件及相关类 -->
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  <servlet>
      <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
  </servlet>
<!—axis需要引入的Servlet -->
  <servlet>
      <servlet-name>axis</servlet-name>
      <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
      <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet-mapping>
      <servlet-name>axis</servlet-name>
      <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
<!—axis的Web Service的Web发布路径 -->
</web-app>

简要说明:这个配置文件里,可能还会有许多,不要怕,只需要把关于axis的copy到你自己的web.xml就可以了,不会冲突的,当然也可以稍加修改的,比如:/services/*.jws,这样看起来标准一些,其实这都是可以调试修改的。

编写Web-INF下的Spring工程文件xxx-services.xml,具体配置如下:
<?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="helloWorld"
      class="com.test.www.impl.HelloWorldImpl">
      <property name="helloStr">
        <value>Say Hello to :</value>
      </property>
  </bean>
</beans>

原文在这里有一些小错,不过是可以看出来的,我把正确的贴上来了,上面这段要放到services的配置下,记得要把包名和类名写对。

以上就完成了整个Spring的代码部分的编写,好像到了这个地方还一直没有介绍Web Service的部分(除了如何配置axis)。其实在Spring中对Web Service进行封装很简单,仅仅需要继承org.springframework.remoting.jaxrpc.ServletEndpointSupport类,实现里面的一些方法,包装一次,将其发布出来就可以勒。
编写包装成Web Service的JaxRpcHelloWorld类,代码如下:
package com.test.www.webservice;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import com.test.www.IHelloWorld;
public class JaxRpcHelloWorld extends ServletEndpointSupport implements IHelloWorld{
  private IHelloWorld helloWorld;
 
protected void onInit() throws ServiceException {
  //在Spring容器中获取Bean的实例
    helloWorld = (IHelloWorld) getApplicationContext().getBean(
          "helloWorld");
  }
 
public String getMessage(String name) throws RemoteException {
  //执行Bean中的相同的方法
    return helloWorld.getMessage(name);
  }
}


最后编写server-config.wsdd文件,发布Web Service,具体代码如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  <service name="HelloWorld" provider="java:RPC">
    <parameter name="className"
          value="com.test.www.webservice.JaxRpcHelloWorld"/>
    <parameter name="allowedMethods" value="*"/>
  </service>
  <transport name="http">
    <requestFlow>
        <handler type="URLMapper"/>
    </requestFlow>
  </transport>
</deployment>


所有的工作全部完成,接下来只需要启动resin来验证你的Web Service是否已经发布成功,启动resin后,在你的浏览器中输入:http://localhost:8080/<YourProject>/services/HelloWorld?wsdl,如果能发现HelloWorld(wdsl)等信息,恭喜你,你的所有的工作都已经完成。

4.   测试调用

编写一个叫TestWebServiceClient类,代码如下:
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.client.ServiceFactory;
public class testWebServiceClient {
  /**
    * @param args
    */
  public static void main(String[] args) {
      // TODO Auto-generated method stub
      try {
        String wsdlUrl = "http://localhost:8080/services/HelloWorld?wsdl";
        String nameSpaceUri = "http://localhost:8080/services/HelloWorld";
        // 创建调用对象
        Service service = new Service();
        Call call = null;
        call = (Call) service.createCall();
        // 调用sayHello
        System.out.println(">>>getMessage");
        call.setOperationName(new QName(nameSpaceUri, "getMessage"));
        call.setTargetEndpointAddress(new java.net.url(http://www.zhmy.com/wsdlUrl));
        String ret = (String) call.invoke(new Object[] { "ABC" });
        System.out.println("return value is " + ret);
      } catch (Exception e) {
        e.printStackTrace();
      }
  }
}


执行出来的结果,可想而知,会在控制台上输出一排字,内容如下:
Say Hello to:ABC


5:总结分析

因为用的是resin,所以要一定要配相关发布路径,要不然会报i18n的错的。

tomcat下更好弄。

这样就把resin+spring+axis结合起来了,与自己目前相关应用结合,就可以做实际业务处理了。
分享到:
评论

相关推荐

    Spring + Hibernate + Spring mvc +Ajax 整合

    这个项目可能是为了演示如何在一个简单的添加删除操作中使用这些技术,通过整合Spring、Hibernate、Spring MVC和Ajax,实现一个高效、用户友好的后台管理系统。开发者可以通过学习这个示例,掌握如何在实际项目中...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    struts2 spring hibernate ajax整合例子

    Struts2、Spring、Hibernate和Ajax是Java Web开发中的四大核心技术,它们的整合可以构建出高效、灵活且功能丰富的Web应用程序。以下是对这四个技术及其整合应用的详细说明。 **Struts2** 是一个基于MVC(Model-View...

    Struts2 spring hibernate ajax整合实例

    本实例将详细讲解如何将这三个框架与Ajax技术进行整合,以实现数据的异步刷新。 Struts2是基于MVC(Model-View-Controller)设计模式的开源Web应用框架,它负责处理用户请求并调用业务逻辑,再将结果返回给用户。...

    开发基于Struts Spring Hibernate Ajax整合配置文件的配置

    以上就是基于Struts、Spring、Hibernate和Ajax整合应用的基本配置流程。这些框架的结合使用极大地提高了开发效率,降低了维护成本,使得复杂的Web应用程序开发变得更为便捷。在实际开发中,还需要根据项目需求进行更...

    spring hibernate struts ajax整合项目源代码

    整合的四大框架项目 spring hibernate struts ajax整合项目源代码 spring hibernate struts ajax整合项目源代码

    spring和AJAX

    提供的 `springmvcJ` 压缩包文件很可能包含了一个 Spring MVC 和 AJAX 整合的示例项目。下载这个项目后,你可以查看其源代码,了解如何设置 AJAX 请求、如何在 Spring MVC 中处理这些请求,以及如何返回数据。这...

    spring security ajax请求与html共存

    2. **Ajax请求与Spring Security** 在现代Web应用中,Ajax常用于创建动态和交互性更强的用户界面。Spring Security同样支持Ajax请求的处理。当一个Ajax请求被发送时,它会被Spring Security的过滤链所拦截,遵循...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter1

    同时,会讲解如何整合Spring以管理依赖和事务。最后,我们将引入Ajax,实现初步的客户端交互功能。 在这个过程中,你将学习到如何使用Struts的拦截器来添加全局行为,如登录验证;如何利用Spring的AOP进行权限控制...

    Spring3 MVC Ajax with JSON

    **Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...

    Struts2+Spring+Ajax实现的用户登录

    总的来说,Struts2、Spring和Ajax的整合使得用户登录功能更加高效、用户友好。Struts2处理请求和响应,Spring管理业务逻辑和数据访问,而Ajax则提供了流畅的用户体验。在实际开发中,开发者需要对这三个框架有深入...

    Spring Boot和ajax实现信息查询页面

    本项目以"Spring Boot和Ajax实现信息查询页面"为主题,旨在帮助开发者学习如何在Java环境中利用Spring Boot后端框架与前端Ajax技术进行数据交互。 Spring Boot是由Pivotal团队维护的Java框架,它简化了Spring应用...

    struts+hiernate+Spring+ajax(四)整合

    "Struts+Hibernate+Spring+Ajax"的整合是Java Web开发中一个经典且广泛采用的组合,它涵盖了MVC(Model-View-Controller)框架、持久层管理、依赖注入以及异步数据交互等多个方面。现在,我们来详细探讨这个整合中的...

    Struts1.1+spring2.5+ibatis2.3+Ajax整合的源代码

    Struts1.1+Spring2.5+Ibatis2.3+Ajax整合是一个经典的Java Web开发框架组合,常用于构建企业级应用。这个源代码集合提供了如何将这四个技术有效地结合在一起的实例,以实现一个功能强大的、具有无刷新特性的用户界面...

    开发基于Struts Spring Hibernate Ajax

    此外,Spring与Hibernate的整合简化了数据访问层的构建。 3. **Hibernate框架** Hibernate是一个对象关系映射(ORM)框架,它解决了Java应用与数据库之间的数据交互问题。通过Hibernate,开发者可以使用Java对象来...

    java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax

    根据标题、描述和部分内容,知识点覆盖范围主要集中在Java Web开发领域,并且包括了JSP、Servlet、Ajax以及SSH框架(Struts 2、Spring、Hibernate)的技术整合和实战案例分析。 JSP(Java Server Pages)是一种动态...

    Spring in action 2nd_code

    7. **Spring与Ajax整合**:现代Web应用中,Ajax常用于提升用户体验。压缩包可能包含使用Spring的Ajax支持与JavaScript库(如jQuery)配合实现异步请求的示例。 8. **Spring与asp.net/c#/j2ee的对比**:尽管主要关注...

    struts2+spring+hibernate 整合的jar包

    此外,Spring还提供了与Hibernate的整合模块,使得ORM操作更加便捷。 3. **Hibernate**:Hibernate是一个优秀的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。Hibernate...

    一个ajax+spring+hibernate整合project

    【Ajax+Spring+Hibernate整合项目详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,...

    人事管理系统(注解 Mybatis+Spring+Spring MVC框架整合AJAX+JQuery实现登录、注册以及验证码和验证注册用户信息,包括数据库备份)

    三期答辩课程设计,人事管理系统Mybatis+Spring+Spring MVC框架整合AJAX+JQuery实现登录、注册以及验证码和验证注册用户信息,包括数据库备份,课设说明,答辩PPT,Windows下sts(eclipse) 。

Global site tag (gtag.js) - Google Analytics