用XFire成功发布WebService

发布WebService之前必须在项目中添加XFire *.* Core Libraies和XFire *.* HTTP Client Libraries(从MyEclipse中的Java Build Path中获取),下面以HelloWorld为例发布WEB服务。

-----------------------------------------------------source: interface begin------------------------------------------------------

package com.sun.java;

public interface IHelloWorldService {
      public String example1(String message);
}

----------------------------------------------------source: interface impl begin--------------------------------------------------

package com.sun.java;

public class HelloWorldServiceImpl implements IHelloWorldService {
      public String example1(String message) {
            return message;
      }
}

---------------------------------------------------------配置: web.xml begin------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="
http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <servlet>
       <servlet-name>XFireServlet</servlet-name>
       <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
       <load-on-startup>0</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>XFireServlet</servlet-name>
       <url-pattern>/services/*</url-pattern>
   </servlet-mapping>
</web-app>

---------------------------------------------------------配置: services.xml begin------------------------------------------------

services.xml文件在Eclipse中的路径为WebContent/WEB-INF/classes/META-INF/xfire/services.xml,在MyEclipse中的路径为WebRoot/WebServices/services.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="
http://xfire.codehaus.org/config/1.0">
    <service>
          <name>HelloWorldService</name>
          <serviceClass>com.sun.java.IHelloWorldService</serviceClass>
          <implementationClass>com.sun.java.HelloWorldServiceImpl</implementationClass>
    </service>
</beans> 

--------------------------------------------------------客户端: 部署测试 begin---------------------------------------------------
package com.sun.java.client;

import java.net.MalformedURLException;

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 com.sun.java.IHelloWorldService; 

public class HelloWorldClient {
       
//方法1
       public static void main(String[] args) {
             HelloWorldServiceClient client = new HelloWorldServiceClient();
             //create a default service endpoint
             HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();
             //Add custom client code here
             service.example1("hello world");        
             System.out.println("test client completed");
      }

     //方法2
      public static void main(String[] args) {
            Service srvcModel = new ObjectServiceFactory().create(IHelloWorldService.class);
            XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());

            //发布URL如下,对应的WS描述语言为:http://localhost/HelloWorld/services/HelloWorldService?wsdl

            String helloWorldURL = "http://localhost/HelloWorld/services/HelloWorldService";
            try {
                  IHelloWorldService srvc = (IHelloWorldService) factory.create(srvcModel, helloWorldURL);
                  String result = srvc.example1("hello world");
                  System.out.print(result);
            } catch (MalformedURLException e) {
                  e.printStackTrace();
            }
      }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值