使用xfire-client发布webservice接口:

commons-codec-1.3.jar

commons-httpclient-3.0.jar

在src 下创建META-INF/xfire/services.xml

=====================mail方法===============================

package cn.qgc.ch05.main;

import java.util.List;

import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import cn.qgc.ch05.web.WebInteface;
import cn.qgc.ch05.web.biz.WebUserBiz;
import cn.qgc.ch05.web.entity.User;

public class TestMain {

/**
     * @param args
     */
    public static void main(String[] args) {
        //创建服务接口模板
        Service service=new ObjectServiceFactory().create(WebInteface.class);
        //代理工厂
        XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
        String Url="http://localhost:8080/web/services/CommonService";//web地址
        try {
            WebInteface web=(WebInteface)factory.create(service,Url);//根据接口和地址返回服务类
            System.out.println(web.wether());//调用天气预报的接口
            //注册用户
            //创建服务接口模板
            Service serviceUser=new ObjectServiceFactory().create(WebUserBiz.class);
            //代理工厂
            WebUserBiz sser=(WebUserBiz)factory.create(serviceUser,Url);//根据接口和地址返回服务类
            User users=new User("mike", "1234");//获取信息
            sser.add(users.getUsername(),users.getPassword());
            //查询用户
            List<User> list=sser.getInfo();
            if(list.size()>0){
                for (User user : list) {
                    System.out.println(user.getUsername()+"\t"+user.getPassword());
                }
            }else{
                System.out.println("注册失败!");
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}

======================services实现类===========================

package cn.qgc.ch05.web.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import cn.qgc.ch05.web.HibernateSessionFactory;
import cn.qgc.ch05.web.WebInteface;
import cn.qgc.ch05.web.entity.User;

public class WebIntefaceImpl implements WebInteface {
    //实现天气接口
    public String wether() {
        Random random=new Random();
        int ran=random.nextInt(3);
        String message=null;
        switch (ran) {
        case 0:
            message="晴天";
            break;
        case 1:
            message="雨天";
            break;
        case 2:
            message="阴天";
            break;
        default:
            message="未知";
            break;
        }
        return message;
    }

}

========jsp==========

<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="org.codehaus.xfire.service.Service"%>
<%@page import="org.codehaus.xfire.client.XFireProxyFactory"%>
<%@page import="org.codehaus.xfire.XFireFactory"%>
<%@page import="org.codehaus.xfire.service.binding.ObjectServiceFactory"%><%@page import="cn.qgc.ch05.web.WebInteface"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    
        <%
        Service service=new ObjectServiceFactory().create(WebInteface.class);
        //代理工厂
        XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
        String Url="http://localhost:8080/web/services/CommonService";//web地址
        WebInteface web=(WebInteface)factory.create(service,Url);//根据接口和地址返回服务类
        %>
        
    
  </head>
 
  <body>
   <h4>广州,今天:<%=web.wether()%></h4>
  </body>
</html>

==============web.xml==================

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- web中央控制器配置 -->
  <servlet>
      <servlet-name>xFireWebServlet</servlet-name>
      <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>xFireWebServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
</web-app>

===========services.xml==================

<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
        <name>CommonService</name>
        <namespace>www.jbaptech.com.cn/CommonService</namespace>  
        <serviceClass>cn.qgc.ch05.web.WebInteface</serviceClass>
        <implementationClass>cn.qgc.ch05.web.impl.WebIntefaceImpl</implementationClass>
    </service>
</beans>

webservice接口的发布的更多相关文章

  1. Linux虚拟机:发布WebService接口出现异常,无法访问接口

    Linux虚拟机:发布WebService接口出现异常,无法访问接口 今天在部署WebService工程的时候遇到的问题: 在Linux虚拟机上部署一个tomcat同时在tomcat下放置2个工程,其 ...

  2. webService接口发布失败问题

    今天在原有工程上新增加了个webService接口的服务类,但是总提示 axis2 出错 File "/axis2-web/listSingleService.jsp" not f ...

  3. WebService:java配置类形式发布WebService接口及遇见的问题总结

    配置WebService前需要以下依赖jar包 #版本只供参考,具体看项目 <dependency> <grouId>org.apache.cxf</grouId> ...

  4. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  5. WebService---Android中访问WebService接口的方法

     最近公司有个项目需要从Android平台访问WebService接口,实现向发布的函数传递对象.在网上找了一些资料,发现使用ksoap2可以调用WebService传递对象.   需要引入ksoap ...

  6. Webservice接口和Http接口

    WebService又是一种高级应用,与之前学习的Struts.Spring.Hibernate等框架不同.WebService是面向服务的架构(SOA),看起来像是比SSH框架要大.那么它到底是做什 ...

  7. [置顶] Java WebService接口生成和调用 图文详解

    webservice简介: Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间 ...

  8. 【经验随笔】Java通过代理访问互联网平台提供的WebService接口的一种方法

    背景 通常有两点原因需要通过代理访问互联网平台的提供的WebService接口: 1. 在公司企业内网访问外部互联网平台发布的接口,公司要求通过代理访问外网. 2. 频繁访问平台接口,IP被平台封了, ...

  9. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...

随机推荐

  1. 【Python】Python重新学习

    <python基础教程(第二版)> http://www.cnblogs.com/fnng/category/454439.html 分片(后面取的是前一位) eg: >>&g ...

  2. 定时组件quartz系列<二>quartz的原理

    Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便.   一.核心概念   Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可.   1. ...

  3. pdm 中怎么修改表的Name值时使Code值不变

    修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Nam ...

  4. 用python3破解wingIDE

    值得注意的是,python2的整除/在python3中变成了//,sha方法细化成了sha1和sha256,所以破解文件需要更改加密方式和整除部分的编码方式,经过修改后,这个文件可以完美演算出破解码, ...

  5. N的互质数----欧拉函数

    Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都 ...

  6. 将垃圾送入无底洞,顺便整理dev知识

    相信用过Linux的童鞋们都用过crontab来做定时任务,不需要额外的安装程序和配置,一条简单的语句搞定定时任务,但是小伙伴们发现了没,如果你的定时任务执行频率很高而且会产生大量的输出的话,你的老爷 ...

  7. 使用json格式的数据进行通信

    4 Java对象转换成JSON 4.1 问题 将Java对象转换成符合JSON格式的字符串,并测试. 4.2 方案 使用与json-lib.jar相关的jar文件完成类型的转换. 4.3 步骤 步骤一 ...

  8. JavaScript 教程学习进度备忘(二)

    备忘:之前,只将“JS 教程”学习完毕,这篇记录:“JS HTML DOM ”.“JS 对象”.“JS Window”.“JS 库” 书签:跳过:另外跳过的内容有待跟进 _______________ ...

  9. c++11之智能指针

    在c++98中,智能指针通过一个模板“auto_ptr”来实现,auto_ptr以对象的方式来管理堆分配的内存,在适当的时间(比如析构),释放所获得的内存.这种内存管理的方式只需要程序员将new操作返 ...

  10. 关于Windows API、CRT和STL二三事

    1.本文编写目的    本文是为了帮助一些人弄清一些关于Windows API, C运行时程序库(CRT), 和标准C++库(STL)的基本概念.有很多人甚至是有经验的程序员在这些概念上是含糊不清的甚 ...