XFire WebService

在ASP.NET中创建WebService是非常简单的事,但是在JSP中如果我们完全自己手写,那就麻烦的多了。好在我们有CodeHaus公司提供的开源WebService框架XFire,下面我们看看如何在MyEclipse中使用它。

首先选中你新建的Web工程,接着选中菜单栏中的MyEclipse选项,选择Project Capabilities中的Add XFire Web Service Capabilities选项。
在弹出的对话框中选择Next,接着选中XFire1.2 Core Libraries以及XFire1.2 HTTP Client Libraries并单击Finish。
此时MyEclipse变给我们做好了所有的准备工作,我们接下来只需要修改一下配置文件services.xml。
在当前工程下多了一个WebServices目录,在这里你会发现services.xml文件。我们将它修改成这样子:


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>AddUser</name>
<namespace>www.ineeke.cn/AddUser</namespace>
<serviceClass>cn.ineeke.webservice.dao.IUserDAO</serviceClass>
<implementationClass>cn.ineeke.webservice.dao.impl.UserDAOImpl</implementationClass>
</service>
</beans>


name你所提供的服务的名字。
namespace目前我也不知道具体有和作用,O(∩_∩)O哈哈~,问其名应该是将不同的服务放在不同的命名空间中吧。
serviceClass为你该服务的接口。
implementationClass为该服务对接口的具体实现类。

下面开始要写具体的WebService了,创建一个Servlet,其代码如下:


package cn.ineeke.webservice.service;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.codehaus.xfire.XFire;
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.ineeke.webservice.dao.IUserDAO;
import cn.ineeke.webservice.dao.impl.UserDAOImpl;
import cn.ineeke.webservice.entity.User;

/**
*
* 作者:Neeke
* 作用:创建WebService对外提供addUser服务。
* http://www.ineeke.cn
*/
public class UserServlet extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public UserServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String userName = request.getParameter("userName");
        String userPwd = request.getParameter("userPwd");
       
        User user = new User();//创建User对象并赋值
        user.setUserName(userName);
        user.setUserPwd(userPwd);
       
        Service myService = new ObjectServiceFactory().create(IUserDAO.class);//创建WebService对象
        XFire xFire = XFireFactory.newInstance().getXFire();//获取XFire实例
        XFireProxyFactory factory = new XFireProxyFactory(xFire);//创建XFire代理工厂
        //对外提供的服务路径,这里的AddUser需要与services.xml命名相同
        String serviceURL = "http://localhost:8080/webservice/services/AddUser";
        IUserDAO userDAO = (IUserDAO) factory.create(myService, serviceURL);
        userDAO.addUser(user);
    }

    public void init() throws ServletException {
        // Put your code here
    }

}
好了,我们的WebService写好了,接下来便可以被其他程序所调用了。

你可能感兴趣的:(DAO,webservice,MyEclipse,servlet,asp.net)