`
sd8089730
  • 浏览: 264127 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

嵌入式Xfire(Webservice )

 
阅读更多
相信大家对XFire不陌生吧?XFire是下一代的java SOAP框架。XFire提供了非常方便的API,使用这些API可以开发面向服务(SOA)的程序。它支持各种标准,性能优良(基于低内存的STAX模型)。他的功能很强大,下面和大家介绍下:

1支持多个重要的Web Service标准,包括SOAP、WSDL、WS-I Basic Profile、WSAddressing

2WS-Security等.

3 高性能的SOAP栈。

4可选的绑定(binding)方式,如POJO、XMLBeansJAXB1.1、JAXB2.0、Castor和JiBX

等。

5 支持JSR181 API。

6 多种传输方式,如HTTP、JMS、XMPP、In-JVM等。

7 灵活的接口。

8 支持多个容器,如Spring、Pico、Plexus、Loom。

9 支持JBI。

这么强大的框架,看了是不是有种冲动呢?记得自己首次接触的时候就是非常冲动的,不好意识跑题了!下面说说嵌入XFire服务的实现吧!

用到C/S架构的应用程序中,可以在桌面应用程序中发布

Web Services。XFire可以通过内置的Jetty作为内部的Web服务器进行发布Web Services,所

以确保你的类路径中包含了Jetty。

在eclipse中新建一个Java工程,这要增加一个

HelloService接口和实现类HelloServiceImpl。

HelloService.java

package com.googlepages.smallnest.facet;

public interface HelloService

{

public String Hello(String name);

}

HelloServiceImpl.java

package com.googlepages.smallnest.facet;

13

嵌入XFire服务

public class HelloServiceImpl implements HelloService

{

public String Hello(String name)

{

if (null == name)

{

return "Hello Guest";

}

return "Hello " + name;

}

}

现在,你可以新建一个EmbeddedServer类来模拟一个Web服务器。

package com.googlepages.smallnest.facet;

import org.codehaus.xfire.XFire;

import org.codehaus.xfire.XFireFactory;

import org.codehaus.xfire.server.http.XFireHttpServer;

import org.codehaus.xfire.service.Service;

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

import org.codehaus.xfire.service.invoker.BeanInvoker;

public class EmbeddedServer

{

XFireHttpServer server;

public boolean start()

{

ObjectServiceFactory serviceFactory = new ObjectServiceFactory();

Service service = serviceFactory.create(HelloService.class);

service.setInvoker(new BeanInvoker(new HelloServiceImpl()));

//注册服务

XFire xfire = XFireFactory.newInstance().getXFire();

xfire.getServiceRegistry().register(service);

//启动服务器

14

嵌入XFire服务

server = new XFireHttpServer();

server.setPort(8191);

try

{

server.start();

}

catch (Exception e)

{

return false;

}

return true;

}

public static void main(String[] args)

{

EmbeddedServer server = new EmbeddedServer();

erver.start();

}

}

在这个类中,start方法启动服务,stop方法停止服务。首先得到一个

ObjectServiceFactory 对象,通过这个对象创建一个服务HelloService,并指定访问这个服务

时实际要调用的实现类。接着注册了这个服务。启动内置的服务器,并将端口设置为

8191。运行这个程序,打开浏览器,访问http://localhost:8191/,可以看到下面的界面。


 

 

 

 

 

 

转载请注明出处: 程序员之家 http://www.sunxin.org/

 

  • lib.rar (616.7 KB)
  • 下载次数: 7
分享到:
评论

相关推荐

    webservice采用xfire搭建的所有jar包

    6. **部署与调用**:XFire支持多种部署方式,如嵌入式在应用程序中,或者通过Servlet容器(如Tomcat)。客户端可以通过JAX-RPC或JAX-WS接口调用Web服务。 7. **配置与扩展**:XFire使用XML配置文件来设置服务行为,...

    xFire初级中文教程

    4. **启动服务**:运行应用服务器或通过嵌入式模式启动xFire服务器。 #### 五、调用Web服务 1. **生成客户端代理类**:使用WSDL生成工具自动生成客户端代理类。 2. **初始化客户端**:创建客户端实例并设置必要的...

    web service调用与发布技术

    2. **轻量级**:XFire的设计目标是尽可能减少依赖,使得它可以快速启动和运行,适合于嵌入式环境和小型项目。 3. **强大的绑定系统**:XFire支持多种传输协议(如HTTP、HTTPS、JMS等)和数据格式(如XML、JSON),...

    Asynchronous Web Service Invocation with JAX-WS 2.0

    例如,可以使用`@WebService`注解的`asyncMethods`属性来指定哪些方法应支持异步调用。 **嵌入式绑定声明实现异步** 通过在服务接口上使用特定的注解,如`@AsyncMethodSignature`,可以直接在接口中声明异步方法,...

    cxf与axis2区别

    CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者...

    apache-cxf-2.7.6所有jar包

    CXF这个名字来源于两个项目——Celtix和XFire的合并,这两个项目都致力于提供高质量的Web服务实现。在Apache CXF 2.7.6版本中,我们主要关注的是Web服务的实现和相关的库文件。 Apache CXF允许开发者以多种方式创建...

Global site tag (gtag.js) - Google Analytics