xfire webServeic 例子,参考网上众多例子,自己写得完成了,给大家分享

大家只要按这个目录去建文件就可以了,然后运行,至于其中原理慢慢理会吧

环境:myeclipse 10 +xfire1.1.6

目录

架包:

.

下面就是文件的添加或修改:

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name></display-name>
  8.  
  9. <servlet>
  10. <servlet-name>XFireServlet</servlet-name>
  11. <display-name>XFire Servlet</display-name>
  12. <servlet-class>
  13. org.codehaus.xfire.transport.http.XFireConfigurableServlet
  14. </servlet-class>
  15. </servlet>
  16.  
  17. <servlet-mapping>
  18. <servlet-name>XFireServlet</servlet-name>
  19. <url-pattern>/servlet/XFireServlet/*</url-pattern>
  20. </servlet-mapping>
  21.  
  22. <servlet-mapping>
  23. <servlet-name>XFireServlet</servlet-name>
  24. <url-pattern>/services/*</url-pattern>
  25. </servlet-mapping>
  26.  
  27. <listener-class>
  28. org.springframework.web.context.ContextLoaderListener
  29. </listener-class>
  30.  
  31. <welcome-file-list>
  32. <welcome-file>index.jsp</welcome-file>
  33. </welcome-file-list>
  34. </web-app>

services.xml

  1. <!-- START SNIPPET: services -->
  2. <beans xmlns="http://xfire.codehaus.org/config/1.0">
  3. <service>
  4. <name>HelloService</name>
  5. <namespace>http://com.xfireDemo/HelloService</namespace>
  6. <serviceClass>com.xfire.IHello</serviceClass>
  7. <implementationClass>com.xfire.HelloService</implementationClass>
  8. <scope>request</scope>
  9. </service>
  10. </beans>
  11. <!-- END SNIPPET: services -->

接口HelloService实现:

  1. package com.xfire;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.UUID;
  8.  
  9. public class HelloService implements IHello{
  10. public String sayHello(String name){
  11. return name+",你好!";
  12. }
  13.  
  14. public List<String> uploadFile() {
  15. List<String> list=new ArrayList<String>();
  16. list.add("1");
  17. list.add("2");
  18. list.add("3");
  19. return list;
  20. }
  21.  
  22. /**
  23. * 文件上传 zpf
  24. * @param classType 目录类型如:产品,头像
  25. * @param fileUrls 文件路径
  26. * @param img_urlFileName 文件名字
  27. * @param resouceType 资源类型如:image,vedio,doc
  28. * @param objName 产品下新目录。null表示无用
  29. * @return
  30. */
  31.  
  32. public String remoteFileUpload(String classType, byte[] filebytes,String img_urlFileName, String resouceType, String objName) {
  33. String path=getPorjectPath();
  34. String serverPath="";
  35. if (filebytes!=null && filebytes.length > 0) {
  36. try{
  37. if(filebytes!=null&&filebytes.length>0){
  38. String ext = img_urlFileName.substring(img_urlFileName.lastIndexOf("."));
  39. String fname = UUID.randomUUID().toString();
  40. String savePath="";
  41. //放入文件目录
  42. if (objName != null) {
  43. savePath = path+"\\files"+ "\\" + classType + "\\" + objName + "\\"
  44. + resouceType + "\\";
  45. serverPath="\\files"+ "\\"+ classType + "\\" + objName + "\\"+ resouceType + "\\" + fname + ext;
  46. /*savePath = path+"\\files"+ "\\";
  47. serverPath="\\files"+ classType + "\\" + objName + "\\"+ resouceType + "\\" + fname + ext;*/
  48. } else {
  49. savePath = path+"\\files" + "\\" + classType + "\\" + resouceType + "\\";
  50. serverPath ="\\files"+ "\\"+classType + "\\" + resouceType + "\\"+ fname + ext;
  51. /*savePath = path+"\\files" + "\\";
  52. serverPath ="\\files"+classType + "\\" + resouceType + "\\"+ fname + ext;*/
  53. }
  54.  
  55. System.out.println("savePath:"+savePath);
  56. File filePath=new File(savePath);
  57. if (!filePath.exists()) {
  58. filePath.mkdirs();
  59. }
  60.  
  61. File file = new File(savePath+ fname + ext);
  62. file.createNewFile();
  63.  
  64. FileOutputStream fos=new FileOutputStream(file);
  65. fos.write(filebytes);
  66. fos.close();
  67. path=file.getAbsolutePath();
  68. System.out.println(path);
  69. file=null;
  70. }
  71.  
  72. }catch(Exception ex){
  73. ex.printStackTrace();
  74. }
  75. }
  76.  
  77. return serverPath;
  78. }
  79.  
  80. private String projectName="XFireProject"; // 你项目的名称
  81. //获取当前项目的绝对路径
  82. public String getPorjectPath(){
  83. String nowpath; //当前tomcat的bin目录的路径 如 D:\java\software\apache-tomcat-6.0.14\bin
  84. String tempdir;
  85. nowpath=System.getProperty("user.dir");
  86. tempdir=nowpath.replace("bin", "webapps"); //把bin 文件夹变到 webapps文件里面
  87. tempdir+="\\"+projectName; //拼成D:\java\software\apache-tomcat-6.0.14\webapps\sz_pro
  88. return tempdir;
  89. }
  90.  
  91. }

接口IHello:

  1. package com.xfire;
  2.  
  3. import java.util.List;
  4.  
  5. public interface IHello {
  6. public String sayHello(String name);
  7. public List<String> uploadFile();
  8. public String remoteFileUpload(String classType, byte[] data,String img_urlFileName, String resouceType, String objName);
  9. }

下面就是写得测试类了:

TestClient

  1. package com.xfire;
  2.  
  3. import java.net.MalformedURLException;
  4.  
  5. import org.codehaus.xfire.XFire;
  6. import org.codehaus.xfire.XFireFactory;
  7. import org.codehaus.xfire.client.XFireProxyFactory;
  8. import org.codehaus.xfire.service.Service;
  9. import org.codehaus.xfire.service.binding.ObjectServiceFactory;
  10.  
  11. /**
  12. * 通过XFire生成的客户端进行调用
  13. *
  14. * TestClient.java
  15. * com.liuxiang.xfire
  16. * XFireProject
  17. * @author liuxiang mailto:juxtapose@163.com
  18. * 2007-9-9 下午06:54:36
  19. *
  20. */
  21. public class TestClient {
  22. public static void main(String[] args) {
  23. Service serviceModel = new ObjectServiceFactory().create(IHello.class);
  24. XFire xfire=XFireFactory.newInstance().getXFire();
  25. XFireProxyFactory factory=new XFireProxyFactory(xfire);
  26. String serviceUrl = "http://localhost:8080/XFireProject/services/HelloService";
  27. IHello ds= null;
  28. try {
  29. ds=(IHello)factory.create(serviceModel, serviceUrl);
  30. } catch (MalformedURLException e) {
  31. e.printStackTrace();
  32. }
  33. System.out.println(ds.sayHello("Tom"));
  34. } }

运行Main方法就可以执行

URL可以运行 http://localhost:8080/XFireProject/services/HelloService

代码没问题都是经过测试的

源码:http://download.csdn.net/detail/zpf5126/7457087

宝贝网址:

xfire webServeic 例子的更多相关文章

  1. Web服务,XFire的一个例子

    Web服务优点 互操作性:实现不同系统间的相互调用(语言无关.平台无关) Web服务是什么 Web 服务是一类应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序 Web服务的体系结构 ...

  2. SOAP: java+xfire(web service) + php客户端

    作者: 吴俊杰 web service这项技术暂不说它有多落伍,但是项目中用到了,没法逃避!    xml和json各有各的好处,但是JSON无疑是当今数据交互的主流了.客户soap服务器端用的是 j ...

  3. webservice之XFire的使用(java调用java)

    注意:xfire不支持java.util.List等集合,所以调用webservice传递的参数要为基本类型. 转自:http://zp9245.blog.163.com/blog/static/10 ...

  4. 使用XFire+Spring构建Web Service(一)——helloWorld篇

    转自:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html原文出处:http://tech.it168.com/j/2007- ...

  5. 使用XFire+Spring构建Web Service

    XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用. 相 对于Axis来说,目 ...

  6. Xfire soapHeader的WebService权限控制forjava

    研究webservice有一段时间了,觉得用soapHeader来控制访问比较简单,特贴出代码以供大家分享 1.我们可以做一个很简单的ws测试,服务端的接口代码如下: package ws; //Ge ...

  7. xfire发布的Webservice中Spring注入为空的解决方案

    Spring框架使用中注入为空是一个比较头疼的问题,遇到Webservice和Spring框架配合时,这个问题更容易出现并很难发现问题的原因. 在做SSO系统中就遇到这样的问题,在Service的实现 ...

  8. android使用xfire webservice框架远程对sqlserver操作(包括增删改查)的实例!!已在真机上试验通过

    前两天,公司有一个利用android远程操作sqlserver的项目,对此我是毫无头绪的,但也挺感兴趣的,于是开始上网搜索方法,网上有挺多方法了,发现使用webservice的挺多的,不过我对这些技术 ...

  9. MyEclipse下一个XFire发展Webservice示例

    最近的研究JAVA发展Webservice.网络发现几个热门选择AXIS.XFire.CFX(XFire下一代),打开前几天对这篇文章比较三种选择,他们已经有了一些概念. 样本,以确定自己的实践 在開 ...

随机推荐

  1. node.js笔记

    在node环境上面运行js代码,js相当于php,node相当于apache环境 第一步装 node 环境1.从官网下载 dmg 文件安装2.通过命令行安装 需要用到 homebrew(mac上专门用 ...

  2. select 通过jq赋值

    <select name="F_YSBAQLX" onchange="selectvalue()" id="lista" prompt ...

  3. Linux-记录一次被当肉鸡行为

    转自:http://huoding.com/2016/03/07/495 话说从前些天开始,我的某台服务器不时会出现外网访问响应速度变慢的情况,不过内网访问倒是一直正常.因为并不是核心服务器,所以一开 ...

  4. maven docker 操作

    1. 使用dokerfile 进行构建 创建dockerfile 2. maven 插件 <plugin> <groupId>com.spotify</groupId&g ...

  5. dedecms为后台自定义菜单的完整方法

    dedecms为后台自定义菜单的完整方法 品味人生 dedeCMS 围观7330次 18 条评论 编辑日期:2014-06-14 字体:大 中 小   最近在给客户定制一个企业网站,客户要求使用ded ...

  6. Firebug在Firefox DevTools 中复活

    英文:Firefox,编译:开源中国 链接:www.oschina.net/news/80230/firebug-lives-on-in-firefox-devtools 技术最前线转注:2016年1 ...

  7. 高效Web开发的10个jQuery代码片段(10 JQUERY SNIPPETS FOR EFFICIENT WEB DEVELOPMENT)

    在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库.今天我们将为各位Web开发者提供10个最实用的jQuery代码片段,有需要的开发者可以保存起来. 1.检测Internet ...

  8. 黄聪:Access-Control-Allow-Origin,JS跨域解决办法

    .htaccess添加下面代码: <IfModule mod_headers.c> Header add Access-Control-Allow-Origin "*" ...

  9. iOS中定时器的使用

    1. NSTimer 不是很精确 2.CADisplayLink 屏幕 3.通过GCD来实现定时间器 //定时循环执行事件 //dispatch_source_set_timer 方法值得一提的是最后 ...

  10. [家里蹲大学数学杂志]第047期18 世纪法国数学界的3L

    1 Lagrange---78岁 约瑟夫·拉格朗日, 全名约瑟夫·路易斯·拉格朗日 (Joseph-Louis Lagrange 1735~1813) 法国数学家.物理学家. 1736年1月25日生于 ...