背景:一个公司可能有多个系统,他们各自有不同的用户管理模块,现在需要将用户信息集中起来统一管理,为此开发用户管理系统(UMS),其他系统通过UMS对用户信息进行相关处理
这里举例登陆判断。以后逐渐添加其它强复杂功能。
?环境装备:jdk1.5,tomcat-5.5.25,xfire-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 service的servlet-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中,需要单独添加。?
......
?