当前位置: 代码迷 >> Web前端 >> XFire开发Webservice 一:一个简单的Server
  详细解决方案

XFire开发Webservice 一:一个简单的Server

热度:384   发布时间:2012-11-09 10:18:48.0
XFire开发Webservice 1:一个简单的Server
背景:一个公司可能有多个系统,他们各自有不同的用户管理模块,现在需要将用户信息集中起来统一管理,为此开发用户管理系统(UMS),其他系统通过UMS对用户信息进行相关处理

这里举例登陆判断。以后逐渐添加其它强复杂功能。

?环境装备:jdk1.5tomcat-5.5.25xfire-distribution-1.2.6.zip

xalan-j_2_7_0-bin.zip

?

1----创建普通web项目ums

2----为简单起见,

xfire-distribution-1.2.6.zip下面的xfire-all-126.jar和其中lib所有jar加到web项目的lib文件夹下;xalan-j_2_7_0-bin.zip下面的xalan.jar serializer.jar也加到web项目的lib文件夹下

注意去掉servlet-api-2.3.jar

?

3:编写接口

package com.honest.service;

?

public interface UserManagerService {

?????? boolean login(String name,String password);

}

?

4:实现类

package com.honest.service.impl;

import com.honest.service.UserManagerService;

?

public class UserManagerServiceImpl implements UserManagerService {

?????? public boolean login(String name, String password) {

????????????? if("honest".equals(name) &&

??????????????????????????? "huangcheng".equals(password)){

???????????????????? return true;

????????????? }else{

???????????????????? return false;

????????????? }

?????? }

}

4:src下(可以是任何包内,只要是在类路径下)建立META-INF/xfire/services.xml文件。

services.xml

<!―注意大小写-->

<beans xmlns="http://xfire.codehaus.org/config/1.0">

?????? <service>

????????????? <name>UserManagerService</name>

????????????? <namespace>http://honest.com/UserManagerService</namespace>

????????????? <serviceClass>

????????????? ????? com.honest.service.UserManagerService

????????????? </serviceClass>

????????????? <implementationClass>

????????????? ????? com.honest.service.impl.UserManagerServiceImpl

????????????? </implementationClass>

?????? </service>

</beans>

?

5:web.xml文件添加xfire作为发布web serviceservlet-name

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">

??????

?????? <display-name>用户管理Server</display-name>

?????? <description>基于XFire框架发布Web服务的用户管理系统Server</description>

?????? ?<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>/servlet/XFireServlet/*</url-pattern>

?????? ? </servlet-mapping>

??????

?????? ? <servlet-mapping>

?????? ??? <servlet-name>XFireServlet</servlet-name>

?????? ??? <url-pattern>/services/*</url-pattern>

?????? ? </servlet-mapping>

</web-app>

?

6:发布该web系统(别说你不知道怎么发布)

7:通过地址http://localhost:8080/ums/services/UserManagerService?wsdl如果能访问到wsdl文件,则说明发布成功。

?

补充:

如果抱异常:

java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker

XFire1.26需要xalan.jar原本这个类(TreeWalker)是包含在xalan.jar中的,但是xalan-j2.7.0版的发布包中,将serializer包中的类单独打包成serializer.jar,不再包含在xalan.jar中,需要单独添加。?

......

?

  相关解决方案