xfire和ajax有哪些特征,XFire使用详解

2023-05-16

最近一直使用XFire做WebServices方式使用,总结一些相关经验,本文以具体例子进行XFire开发过程分析

1、首先定义一个Interface,具体包含简单类型传值、返回自定义对象、返回集合三个接口方法

import java.util.List;

import com.gresoft.commons.core.exception.BusinessException;

import com.gresoft.sanitation.model.dictionary.Hospital;

public interface WebServicesInterface {

public String savePutXml(int i,String typecode) throws BusinessException;

public Hospital getList(int p);

public List getAll();

}

2、实现上述接口,实现业务逻辑

public class HospitalService extends HibernateEntityDao implements

WebServicesInterface {

private HospitalManager hospitalManager;

public void setHospitalManager(HospitalManager hospitalManager) {

this.hospitalManager = hospitalManager;

}

public String savePutXml(int o, String typecode) throws BusinessException {

// TODO Auto-generated method stub

Hospital h = new Hospital(o, typecode);

super.save(h);

System.out.println("ccccc");

return "gggg";

}

public Hospital getList(int p) {

// TODO Auto-generated method stub

Hospital h = hospitalManager.get(p);

System.out.println("name:" + h.getHospitalName());

return hospitalManager.get(p);

}

@SuppressWarnings("unchecked")

public List getAll() {

List list = hospitalManager.getAll();

System.out.println("size:" + list.size());

return hospitalManager.getAll();

}

}

定义自定义对象Hospital

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.Cache;

import org.hibernate.annotations.CacheConcurrencyStrategy;

/**

* @author wuxj:

* @version 创建时间:2007-10-15 上午11:31:39

*/

@Entity

@Table(name = "HOSPITAL", schema = "DB2ADMIN")

@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)

public class Hospital implements java.io.Serializable {

private int hospitalId;

private String hospitalName;

public Hospital() {

}

public Hospital(int hospitalId) {

this.hospitalId = hospitalId;

}

public Hospital(int hospitalId, String hospitalName) {

this.hospitalId = hospitalId;

this.hospitalName = hospitalName;

}

@Id

@Column(name = "HOSPITAL_ID", unique = true, nullable = false)

public int getHospitalId() {

return hospitalId;

}

public void setHospitalId(int hospitalId) {

this.hospitalId = hospitalId;

}

@Column(name = "HOSPITAL_NAME", nullable = false, length = 20)

public String getHospitalName() {

return hospitalName;

}

public void setHospitalName(String hospitalName) {

this.hospitalName = hospitalName;

}

}

3、编写XFire的描述文件

描述文件为WebServicesInterface.aegis.xml,一定要与Interface接口类在同一个目录,否则会出错误

只需要描述返回是集合的描述,getAll方法返回是List集合,需要对集合中的元素进行定义,在这里是Hospital对象

componentType="com.gresoft.sanitation.model.dictionary.Hospital" />

4、编写xfire-servlet.xml文件

xfire是跟spring结合一起使用的,所以用到了spring相关内容。

注意:位置一定要在WEB-INF目录下

key="/echo"中的echo为你在客户端访问的地址,具体看client内容

class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

class="org.codehaus.xfire.spring.remoting.XFireExporter">

value="com.gresoft.sanitation.service.WebServicesInterface" />

5、编写客户端测试

import java.net.MalformedURLException;

import org.codehaus.xfire.XFireFactory;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

public class HospitalServiceClient {

public static void main(String args[]) {

Service srvcModel = new ObjectServiceFactory()

.create(WebServicesInterface.class);

XFireProxyFactory factory = new XFireProxyFactory(XFireFactory

.newInstance().getXFire());

// XFireProxyFactory factory = new XFireProxyFactory(getXFire());

String helloWorldURL = "http://localhost:8080/sanitation/service/echo";

// String helloWorldURL ="xfire.local://echo";

try {

WebServicesInterface srvc = (WebServicesInterface) factory.create(

srvcModel, helloWorldURL);

Hospital h = new Hospital();

h.setHospitalId(11);

h.setHospitalName("测试");

// System.out.print(srvc.sayHello("wuxj")+"\n");

// RegisterApply apply = new RegisterApply();

// apply.setOperateDate("20071221");

// apply.setRegisterId("1000");

// srvc.savePutXml(apply);

System.out.println(srvc.savePutXml(11, "测试"));

srvc.getList(1);

srvc.getAll();

// System.out.print(((MsdpUser)srvc.getUser().get(0)).getUid());

} catch (MalformedURLException e) {

System.out.println("wrong");

e.printStackTrace();

}

}

}

6、定义web.xml的xfire

红色字体一定要加上,而且是固定格式,这是xfire需要加载的文件

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

contextConfigLocation

classpath*:spring/*.xml,classpath:org/codehaus/xfire/spring/xfire.xml

org.springframework.web.context.ContextLoaderListener

xfire

org.springframework.web.servlet.DispatcherServlet

xfire

/service/*

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xfire和ajax有哪些特征,XFire使用详解 的相关文章

  • ajax 和相对 url

    我真的不明白这个 我有以下 获取 请求 ajax url api getdirectories dataType json success function data Do stuff 这是我的临时服务器向我提供的页面 http atlas
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • Laravel 5.3 中 ajax POST 的最小工作示例

    有人可以用完整的最小示例解释 Laravel 5 3 中的 ajax post 方法吗 我知道网络上有一些资源 但我错过了一个简洁 直接的最小示例 我认为您对模型 控制器 视图范例有基本的了解 对 Laravel 有基本的了解 并对 Jav
  • 使用 AJAX 调用生成 PDF 文件

    我正在尝试使用 Rails3 中的 AJAX 调用生成 PDF 文件 以下代码生成一个我使用 PRAWN gem 创建的 PDF 文件 我不希望用户在订购之前查看 PDF 因此 目标是在服务器中创建 PDF 文件 非常感谢任何想法或想法 使
  • 如何从 facebook javascript SDK 获取个人资料图片?

    我正在尝试从 Facebook 获取个人资料图片 现在我正在从 Facebook 获取所有信息 但无法获取用户的个人资料照片 这是我的代码 function getFBData FB api me function response fbi
  • 如何根据所选类别隐藏 Django 表单中的字段?

    我需要确保当您添加新广告时 选择一个类别 隐藏表单中不必要的字段 我明白这是用JS做的 但暂时不太明白 所以我告诉你是否有人擅长 例如 我希望在选择 房屋和土地 时 舞台 消失 上市型号 class Listing models Model
  • 在窗口卸载之前调用 jquery ajax 函数的最终方法是什么?

    我需要在窗口卸载之前调用 jquery ajax 函数 就我而言 它是一个 POST 我不关心返回结果 我只想更新数据库 所以答案似乎是将一个函数绑定到 unload 事件 即使用 jquery unload 函数 并且该函数进行 ajax
  • Laravel 中的 PATCH Ajax 请求

    是否可以向 Laravel 发出 Ajax PATCH 请求 或者我是否仅限于 POST Laravel 在输入隐藏字段中使用 PATCH 但是 我没有使用表单元素 只是在单击时 通过 Ajax 请求 应该部分更新记录的按钮 这条路线会是什
  • 在 Django 中 AJAX 发布后重定向

    我使用 Django 的内置 DeleteView 并为success url属性 现在在我的模板中 我通过 JQuery 的 post 方法触发此视图 当该项目被删除时 我不会被重定向到success url 经过一番查找 发现好像是AJ
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh
  • 如何在 gridview 内添加级联下拉菜单以进行编辑?

    我有一个相当标准的 ASP NET GridView 它显示具有父子关系的 2 列 尽管数据库中存在 A 列和 B 列之间的关系 但 GridView 并未实现它 我想做以下事情 当用户选择编辑该行时 将显示 2 个下拉菜单 DropDow
  • jquery UI 可拖动不适用于 AJAX

    我有一个简单的 D D 脚本 您可以在此处看到 http demo superdit com jquery dragdrop cart http demo superdit com jquery dragdrop cart 现在它工作得很好
  • 选择所有相同类元素并存储在字符串中

    我有一个页面 其中有用户留下的评论 每个帖子都有自己的 id 存储在隐藏的输入标记中 为了动态获取最新帖子 我需要知道所有帖子的 id 并将它们放在字符串中 每个id需要用逗号分隔 例如 HTML 标记 div class msgPost
  • 如何在Google可视化条形图中自定义工具提示(文本和格式)?

    我在用谷歌可视化条形图 http code google com apis visualization documentation gallery barchart html我想自定义或更改工具提示文本和格式单击栏时出现的 我已经阅读了文档
  • 我创建了一个对话框,现在如何关闭它?

    我在下面添加了一个指向我网站的链接 用于查看头部部分中的 JS 并让您了解我是如何设置这一切的 如果您不想使用该链接 我也会尝试添加下面的代码 我最近在我网站的某些页面上学习了一些基本的 AJAX我创建了一个对话框 您将看到它出现在滚动条上
  • 当用户点击后退按钮返回上一个网页时,如何再次调用ajax?

    下面是我的代码 HTML 代码 div class body div class dropdown div div div
  • AngularJS,使用没有后退按钮刷新的路由

    我在用着angularJS使用 AJAX 构建一个简单的单页应用程序 但是当用户使用本机后退按钮时我遇到了问题 angular module myApp ionic myApp controllers myApp services conf
  • 在 ASP.NET 更新面板中使用时,文本框回发值中缺少回车符(ASCII 字符 13)

    我有一个 ASP NET TextBox 其 TextMode TextBox Mode Multi Line 在 AJAX 更新面板中使用 Text 值已预设为具有多行的值 当使用 Chrome 7 0 517 41 或 Firefox
  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • Wicket:并发 Ajax 请求仅限于一个?

    情况 在我的 Wicket 应用程序中 我有一个包含两个标签的页面 每次选择一个选项卡时 都会通过 Ajax 获取其内容 以便每次切换到不同的选项卡时 都会从服务器新鲜加载其内容 在其中一个选项卡上 我有一个输入字段 其中有一个 onblu

随机推荐