当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Web框架:小编谈嵌入XFire服务介绍及实现

Web框架
Struts开发过程中的异常处理机制
ServletContext与ServletConfig分析
使用Ajax的挑战
Web程序从Struts向Stripes框架的移植
Shale不是Struts
Web框架:基于Ajax的应用程序架构汇总
Web框架:使用Ajax技术开发Web应用程序
Web框架:简单理解Hibernate三种状态的概念及互相转化
Web框架:浅谈Struts2中拦截器应用
Web框架:Struts2中的Action
Web框架:Struts2高级文件上传
Web框架:小编谈嵌入XFire服务介绍及实现
Web框架:DWR中signatures标签的使用
WEB框架:小编总结Struts2的经典输入校验
WEB框架:小编祥谈Struts2的数据标签中Action与Bean标签的使用
Web框架:小议struts2类型转换
Web框架:小编浅谈Struts2的pub-sub事件模型
Web框架:小编简述JSF
Web框架:Hibernate事务管理
Web框架:Struts高级特性(StrutsAdvancedFeature)验证

Web框架:小编谈嵌入XFire服务介绍及实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 173 ::
收藏到网摘: n/a

1支持多个重要的Web Service标准,包括SOAPWSDLWS-I Basic ProfileWSAddressing

2WS-Security等.

3 高性能的SOAP栈。

4可选的绑定(binding)方式,如POJOXMLBeansJAXB1.1JAXB2.0CastorJiBX

等。

5 支持JSR181 API

6 多种传输方式,如HTTPJMSXMPPInJVM等。

7 灵活的接口。

8 支持多个容器,如SpringPicoPlexusLoom

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/,可以看到下面的界面。