XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。 --摘自百度百科
一 服务器端怎么用XFire发布服务?
1 创建web工程
2 将XFire目录下的各种jar包拷贝到web工程的lib下面
3 修改 web.xml 文件,在其中增加如下 Servlet 定义内容
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
4 创建service配制文件:src/META-INF/xfire/services.xml
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>
HelloWorldService
</name>
<namespace>
http://locahost:8888/xfiredemo/HelloWorldService
</namespace>
<serviceClass>
com.dxm.cyou.xfire.pojo.HelloWorldService
</serviceClass>
<implementationClass>
com.dxm.cyou.xfire.pojo.HelloWorldServiceImpl
</implementationClass>
</service>
</beans>
5 很显然,步骤4之前我创立了一个接口,和一个接口实现类,名字从service.xml中可以看出
6 java文件如下:
com.dxm.cyou.xfire.pojo.HelloWorldService.java
package com.dxm.cyou.xfire.pojo;
public interface HelloWorldService {
public String sayHelloWorld(String name, Integer size);
public Integer add(Integer a, Integer b);
}
package com.dxm.cyou.xfire.pojo;
public class HelloWorldServiceImpl implements HelloWorldService {
public String sayHelloWorld(String name, Integer size) {
return "Hello World:" + name + "||size:" + size;
}
public Integer add(Integer a, Integer b){
return a + b;
}
}
7 发布Web服务,在浏览器中访问URL:http://localhost:8888/xfiredemo/services/HelloWorldService?wsdl
得到如下结果:
<wsdl:definitions targetNamespace="http://locahost:8888/xfiredemo/HelloWorldService">
−
<wsdl:types>
−
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://locahost:8888/xfiredemo/HelloWorldService">
−
<xsd:element name="sayHelloWorld">
−
<xsd:complexType>
−
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
−
<xsd:element name="sayHelloWorldResponse">
−
<xsd:complexType>
−
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
−
<wsdl:message name="sayHelloWorldRequest">
<wsdl:part name="parameters" element="tns:sayHelloWorld">
</wsdl:part>
</wsdl:message>
−
<wsdl:message name="sayHelloWorldResponse">
<wsdl:part name="parameters" element="tns:sayHelloWorldResponse">
</wsdl:part>
</wsdl:message>
−
<wsdl:portType name="HelloWorldServicePortType">
−
<wsdl:operation name="sayHelloWorld">
<wsdl:input name="sayHelloWorldRequest" message="tns:sayHelloWorldRequest">
</wsdl:input>
<wsdl:output name="sayHelloWorldResponse" message="tns:sayHelloWorldResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
−
<wsdl:binding name="HelloWorldServiceHttpBinding" type="tns:HelloWorldServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
−
<wsdl:operation name="sayHelloWorld">
<wsdlsoap:operation soapAction=""/>
−
<wsdl:input name="sayHelloWorldRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
−
<wsdl:output name="sayHelloWorldResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
−
<wsdl:service name="HelloWorldService">
−
<wsdl:port name="HelloWorldServiceHttpPort" binding="tns:HelloWorldServiceHttpBinding">
<wsdlsoap:address location="http://localhost:8888/xfiredemo/services/HelloWorldService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
二,WSDL的基本讲解
上面就是一个sayHelloWorld与add两个服务的WSDL,对于上面那段WSDL在这里简单的介绍一下。
从下往上看
1 Service- 相关服务访问点的集合:通过它你可以知道,你将通过哪个URL去访问你需要访问的的服务
元素包含一个或者多个Port元素
2 Port-每一个Port元素对应一个不同的Web服务,port将一个URL赋予一个特定的binding,通过location实现 可以使两个或者多个port元素将不同的URL赋给相同的binding
3 binding无素:特定端口类型的具体协议和数据格式规范的绑定
4 Message元素描述了Web服务的有效负载。相当于函数调用中的参数和返回值:
5 PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。
6 Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
7 Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构:相当于方法调用的参数与返回值定义
8 Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。:从我给出的例子中,你会发现,那些message最终都定义在types中。比如sayHelloWorld 输入两个参数,一个String,一个int,返回String, add服务输入两个int,返回一个int等
上面那些WSDL基本元素第一次看不懂,无所谓,你试着去改变你的服务(JAVA),然后再发布,再看相应的WSDL
如此重复几次,你就明白了。正所谓书读百遍,其义自现,这样比死记硬背好多了。
三,客户端怎么调用服务
用代码说明问题:
com.dxm.cyou.xfire.test.XFireTest.java
package com.dxm.cyou.xfire.test;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class XFireTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
XFireTest xFireTest = new XFireTest();
xFireTest.test();
}
public void test() throws Exception{
Client client = new Client(new URL("http://localhost:8888/xfiredemo//services/HelloWorldService?wsdl"));
Object[] results = client.invoke("sayHelloWorld", new Object[] {"邓小明", 100});
System.out.println("results:" + results[0]);
Object[] results2 = client.invoke("add", new Object[] {100, 200});
System.out.println("results:" + results2[0]);
}
}
结果如下:
results:Hello World:邓小明||age:24
100 + 200 : 300
That's all
说明一下,今天第一次接触这个东东。以前老师讲过axis2基本全忘记了。
分享到:
相关推荐
demo是一个小的webservice开发,下载下来部署到tomcat下直接运行。 运行地址:http://127.0.0.1:8080/XFireTest/services XFireTest——项目名称
1. webservice xfire的完整demo,下载后可以直接导入eclipse调试。 2. 包括客户端和服务端,服务端需要部署到tomcat等web容器,启动服务端后可以通过客户端测试调用结果。 3. 工程已经将依赖的jar包一起包含,不需要...
基于Java的WebService(XFire)文档 完整的demo
此程序demo详细描述的从发布接口到调用接口的全部过程,详细描述了Xfire调用webservice参数无法传递的问题。
Xfire WebServcie demo以及所有jar.
使用xfire框架搭建的webService。主要有2个实例:SOAP Header中进行身份验证和WS-Security进行身份验证
xfire webservice 上传下载源码 一个完整的demo
xifre服务端代码,完整的jar包和配置
webservice xfire整合spring(webservice配置采用注解),demo包含xfire 与spring整合的配置,客户端和服务端的代码,及jar包
此程序demo详细描述的从发布接口到调用接口的全部过程,详细描述了Xfire调用webservice参数无法传递的问题。
使用xfire创建webservice极简demo,包含服务端,及客户端调用代码
附件中是搭建的一个maven项目,使用jdk1.7,实现了XFire的简单使用。
文件中一个服务器端项目,一个客户端项目 先启动服务器端,再启动客户端
为了实现Web Services的平台无关性和实现访问独立性,软件行业需要遵循一些作为标准的技术。
webservice的xfire框架所有需要jar包。测试应用demo,部署可直接运行
完整的一个demo,使用xfire发布的员工管理类Demo,操作方法包括,增删改查基本四个操作。初学时做的练习用的
根据公司的对外接口项目 扣出来的Demo 使用xfire搭建WebService 其中使用数字证书进行验证安全 Demo中有详细使用文档~注意Demo中的证书是否过期~~直接导入项目从tomcat跑起来即可运行测试
包含了xfire发布webservice的服务端和客户端,可以直接放在tomcat或websphere里面调用。用过cxf发布webservice,发现与websphere有冲突,无奈转用xfire。
轻量级WebService,打包了轻量级WebService hessian的一个简单demo,还有Xfire的一个简单demo,还有一些PPT文档,相对来说,对于没有入门的童鞋们来说是个不错的资源,免费共享给大家,互相共勉(我也是菜鸟)。