目录
- 构建项目
- 创建服务端API
- 嵌入式HTTP服务器发布服务
- 创建客户端
[一]、构建项目
maven构建项目:
1 |
mvn archetype:create -DgroupId=com.micmiu.xfire.demo -DartifactId=xfire-embedded-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode= false
|
再执行:mvn eclipse:eclipse ,转化为eclipse项目并导入。
修改POM.xml 文件增加依赖lib:
2 |
< groupId >org.codehaus.xfire</ groupId >
|
3 |
< artifactId >xfire-java5</ artifactId >
|
4 |
< version >1.2.6</ version >
|
9 |
< groupId >org.mortbay.jetty</ groupId >
|
10 |
< artifactId >jetty</ artifactId >
|
11 |
< version >6.1.26</ version >
|
13 |
< scope >compile</ scope >
|
16 |
< groupId >javax.servlet</ groupId >
|
17 |
< artifactId >servlet-api</ artifactId >
|
18 |
< version >2.4</ version >
|
20 |
< scope >compile</ scope >
|
如果不是用maven构建项目,下面给出示例项目所有依赖的lib详细列表:
activation-1.1.jar
ant-1.5.jar
commons-attributes-api-2.1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.0.4.jar
jaxen-1.1-beta-9.jar
jdom-1.0.jar
jetty-6.1.26.jar
jetty-util-6.1.26.jar
junit-3.8.1.jar
mail-1.4.jar
qdox-1.5.jar
servlet-api-2.4.jar
servlet-api-2.5-20081211.jar
stax-api-1.0.1.jar
stax-utils-20040917.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.0.jar
xercesImpl-2.6.2.jar
xfire-aegis-1.2.6.jar
xfire-annotations-1.2.6.jar
xfire-core-1.2.6.jar
xfire-java5-1.2.6.jar
xfire-jsr181-api-1.0-M1.jar
xmlParserAPIs-2.6.2.jar
XmlSchema-1.1.jar
[二]、创建服务端API
编码服务接口:HelloEchoService.java
1 |
package com.micmiu.xfire.demo.embedded;
|
8 |
public interface HelloEchoService {
|
10 |
String echo(String echo);
|
接口的实现:HelloEchoServiceImpl.java
1 |
package com.micmiu.xfire.demo.embedded;
|
8 |
public class HelloEchoServiceImpl implements HelloEchoService {
|
10 |
public String echo(String echo) {
|
[三]、嵌入式HTTP服务器发布服务
服务发布代码:ServiceStarter.java
1 |
package com.micmiu.xfire.demo.embedded;
|
3 |
import org.codehaus.xfire.XFire;
|
4 |
import org.codehaus.xfire.XFireFactory;
|
5 |
import org.codehaus.xfire.aegis.AegisBindingProvider;
|
6 |
import org.codehaus.xfire.aegis.type.Configuration;
|
7 |
import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry;
|
8 |
import org.codehaus.xfire.annotations.AnnotationServiceFactory;
|
9 |
import org.codehaus.xfire.server.http.XFireHttpServer;
|
10 |
import org.codehaus.xfire.service.Service;
|
11 |
import org.codehaus.xfire.service.binding.BindingProvider;
|
12 |
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
|
13 |
import org.codehaus.xfire.service.invoker.ObjectInvoker;
|
20 |
public class ServiceStarter {
|
22 |
XFireHttpServer server;
|
24 |
public void start() throws Exception {
|
26 |
XFire xfire = XFireFactory.newInstance().getXFire();
|
29 |
ObjectServiceFactory serviceFactory = new ObjectServiceFactory(
|
30 |
xfire.getTransportManager());
|
42 |
Service service = serviceFactory.create(HelloEchoService. class );
|
47 |
service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS,
|
48 |
HelloEchoServiceImpl. class );
|
51 |
xfire.getServiceRegistry().register(service);
|
54 |
System.out.println( " ----> XFire embedded HTTP Server start <---- " );
|
55 |
server = new XFireHttpServer();
|
60 |
public void stop() throws Exception {
|
67 |
public static void main(String[] args) {
|
69 |
System.out.println( " ----> 服务发布 。。。 <---- " );
|
70 |
ServiceStarter service = new ServiceStarter();
|
72 |
} catch (Exception e) {
|
运行日志:
----> 服务发布 。。。 <----
----> XFire embedded HTTP Server start <----
2012-07-30 23:26:00.502:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2012-07-30 23:26:00.549:INFO::jetty-6.1.26
2012-07-30 23:26:00.623:INFO::Started SocketConnector@0.0.0.0:8090
浏览器输入:http://localhost:8090 和 http://localhost:8090/HelloEchoService?wsdl 回车:
[四]、创建客户端
编写客户端测试代码:ClientTest.java
1 |
package com.micmiu.xfire.demo.embedded;
|
3 |
import org.codehaus.xfire.client.XFireProxyFactory;
|
4 |
import org.codehaus.xfire.service.Service;
|
5 |
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
|
12 |
public class ClientTest {
|
17 |
public static void main(String[] args) {
|
19 |
System.out.println( " ----> 初始客户端 <---- " );
|
21 |
ObjectServiceFactory serviceFactory = new ObjectServiceFactory();
|
22 |
Service serviceModel = serviceFactory
|
23 |
.create(HelloEchoService. class );
|
26 |
XFireProxyFactory proxyFactory = new XFireProxyFactory();
|
27 |
HelloEchoService client = (HelloEchoService) proxyFactory.create(
|
30 |
System.out.println(client.echo( "Hi,welcome to www.micmiu.com" ));
|
31 |
System.out.println( " ----> 客户端调用结束 <---- " );
|
32 |
} catch (Exception e) {
|
运行日志:
----> 初始客户端 <----
Hi,welcome to www.micmiu.com
----> 客户端调用结束 <----
到此示例基本结束。
分享到:
相关推荐
此文档讲解配制Spring2.5+Hibernate3.2+xfire开发webservice工程(有截图)
在Eclipse平台下通过Xfire发布web服务 ,介绍了客户端如何调用服务器发布的web服务
本例子使用XFire发布WebService+XFire调用WebService-示例
XFire Webservice 服务器端
用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl
NULL 博文链接:https://xuyuanshuaaa.iteye.com/blog/1138220
运用xfire框架,与Spring集成发布webservice服务,压缩包已包含所需的jar包等各种文件,也已编写客户端进行测试,下载导入即可启动运行,有问题的欢迎咨询哈
在Eclipse下用xfire创建webserver服务器demo,直接可以使用的
XFire服务器端所用的jar,直接解压放到对应的文件夹下就可用
包含了xfire发布webservice的服务端和客户端,可以直接放在tomcat或websphere里面调用。用过cxf发布webservice,发现与websphere有冲突,无奈转用xfire。
XFire与Spring组合发布webservices的几种方式实例,可以直接导入到环境运行
xfire简单实例发布webservice,引用到2个jar包的简单例子
java xfire webService服务器端,开发简单有文档说明。
本文档主要描述xfire整合spring发布web services 绝对的真实可靠,按步骤操作一定成功
描述用eclipse部署JBPM服务,以及用xfire将JBPM服务发布成webservice。一、下载JBPM包并解压。。。。
Xfire Spring Hibernate 发布WebService(源码) Xfire1.2 Spring 2.0 Hibernate 3 发布WebService 一、准备工作 1、下载安装MyEclipse6.5 2、下载安装MySQL Server 5.1 3、下载MySQL驱动 mysql-connector-java...
xFire发布Web Service,并调用远程服务 ,里面包含xfire相关lib包及配置service.xml配置文件 ,需要先启动xfire 服务端 再启动客户端。main函数启动测试
xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...
这个自己写的xFire发布WebService,包含发布和调用,可以用在企业中,而且所用的jar也比较少,不会出现很多jar的问题,一共才9个jar,[commons-codec-1.3.jar,commons-httpclient-3.0.jar,commons-logging-1.0.4.jar,...