tomcat下搭建简单的xfire web services项目

来源:互联网 发布:新版本淘宝高级搜索 编辑:程序博客网 时间:2024/05/17 23:54
tomcat下搭建简单的xfire web services项目
                xfire简介
支持将Web服务绑定到POJO、XMLBeans、JAXB1.1、JAXB2.0和Castor;
支持基于HTTP、JMS、XMPP等多种协议访问Web服务;
支持多种Web服务业界重要标准如SOAP、WSDL、Web服务寻址(WS-Addressing)、Web服务安全(WS-Security)等;
支持JSR181,可以通过JDK5配置Web服务;
高性能的SOAP实现;
服务器端、客户端代码辅助生成;
对Spring、Pico、Plexus等项目的支持等。
                Xfire服务器搭建
     基础架包
1.    XFire-all-1.2.6.jar  
XFire框架的二进制包文件,包含了全部的模块(modules)
2.    commons-logging.jar
Apache Commons包中的一个,包含了日志功能。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。
commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把     log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。
后来Apache就开发出来了commons-logging.jar用来兼容两个 logger。因此用commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择 log4j,java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。
3.  jdom-1.0.jar
解析xml文件
4.spring-1.2.6.jar
spring核心包
5.wsdl4j-1.6.1.jar
连接wsdl
6.xbean-spring-2.8.jar
xbean 和 spring 结合所需包
7.ojdbc14.jar
连接数据库

        编写接口
package dao;

public interface Bank {
    String OperateMoney(String card,double total);
}
        编写实现类
package dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

import dao.Bank;
import dao.BaseDao;

public class BankImpl implements Bank {

    @Override
    public String OperateMoney(String card, double total) {
        String info = "";
        if(1 == update(card, total)){
            info = "success";
        }else{
            info = "false";
        }
        return info;
    }
    private int update(String card, double total){
        Connection con = BaseDao.getConnection();
        String sql = "update bank_card set total = total + ? where card = ? ";
        int row = 0;
        entity.Bank bank =  select(card);
        if(null != bank){
            if((bank.getTotal() + total) > 0){
                try {
                    PreparedStatement pState = con.prepareStatement(sql);
                    pState.setDouble(1, total);
                    pState.setString(2, card);
                    row = pState.executeUpdate();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return row;
    }
    private entity.Bank select(String card){
        Connection con = BaseDao.getConnection();
        String sql = "select * from bank_card where card = ? ";
        ResultSet result = null;
        entity.Bank bank = new entity.Bank();
        try {
            PreparedStatement pState = con.prepareStatement(sql);
            pState.setString(1, card);
            result = pState.executeQuery();
            if(result.next()){
                bank.setId(result.getInt(1));
                bank.setCard(result.getString(2));
                bank.setTotal(result.getDouble(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return bank;
    }


}

        建立services.xml文件,需要放在WebContent/WEB-INF/classes/META-INF/xfire目录下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
        <name>OperateMoney</name>
        <namespace>localhost:8080/fifth/</namespace>
        <serviceClass>dao.Bank</serviceClass>
        <implementationClass>dao.impl.BankImpl</implementationClass>
    </service>
</beans>

        修改web.xml文件,加入一个servlet
  <servlet>
        <servlet-name>xFireServlet</servlet-name>
        <servlet-class>
            org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>xFireServlet</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>        
    
            
        






原创粉丝点击