Use xfire to done your web services in java

来源:互联网 发布:如何缓解焦虑情绪 知乎 编辑:程序博客网 时间:2024/05/17 21:47

Use xfire to done your web services

1.  Sample

Service:

First config, xfire-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <!-- URLs to WebService mapping. Requests are forwarded through Springs' DispatcherServlet -->

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

        <property name="urlMap">

            <map>

                <entry key="/BankInterface">

                    <ref bean="bank[j1] "/>

                </entry>

//映射到URLKEY

            </map>

        </property>

    </bean>

 

    <!-- Declare a parent bean with all properties common to both services -->

    <bean id="bank" class="org.codehaus.xfire.spring.remoting.XFireExporter">

        <property name="serviceFactory">

            <ref bean="xfire.serviceFactory"/>

        </property>

        <property name="xfire">

            <ref bean="xfire"/>

        </property>

        <property name="serviceBean">

            <ref bean="bankInterfaceService[j2] "/>

        </property>

        <property name="serviceClass">

            <value>com.fch.fps.bs.bankinterface.BankInterface[j3] </value>

        </property>

//映射SERVICE

    </bean>

</beans>

THEN,WEB.XML:

<context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>

classpath:/com/fch/fps/bs/spring/applicationContext.xml

            classpath:org/codehaus/xfire/spring/xfire.xml

        </param-value>

</context-param>

 

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

 

<servlet>

        <servlet-name>xfire</servlet-name>

   <servlet-class>org.springframework.web.servlet.DispatcherServlet

</servlet-class>

</servlet>

 

<servlet-mapping>

        <servlet-name>xfire</servlet-name>

        <url-pattern>/ws/*</url-pattern>

</servlet-mapping>

 

这样启动服务,写 http://localhost:7001/配置工程名/ws/BankInterface 就可以看到,加上 WSDL 就可解析为XML

 

假如SERVICE1方法“public void register()”,需要被CLIENT调用.

 

2.  CLIENT

Just need few word like this:

 

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

Service ser=new ObjectServiceFactory().

Create(BankInterfaceService.class);

//xfire-servlet.xml中的接口 serviceBean

 

BankInterfaceService bankser=( BankInterfaceService)

new xfireproxyFactory.create(ser,url);

//this  url must be http://localhost:7001/配置工程名/ws/BankInterface

 

Ok,now “bankser” can do whatever u want

 

Bankser.register();


 [j1]The same as the “<bean id=”bank”. . . . . . . “

 [j2]Spring 配置文件中注入的service

 [j3]Service的接口