1.首先介绍环境配置
step 1 : 在eclipse 中新建一下web 项目
并导入xfire 对应的依赖*.jar 包文件
step 2 : 在java src 目录下新建文件夹src/META-INF/xfire
和文件services.xml 内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<!--name>HelloWorldWebServiceConfigName</name>
<namespace>
http://127.0.0.1/usf/HelloService
</namespace>
<serviceClass>
com.webservice.helloworld.HelloWorldWebServiceTest
</serviceClass>
<implementationClass>
com.webservice.helloworld.imp.HelloWorldWebServiceImpl
</implementationClass-->
<!--对应的WebService 实类名称-->
<serviceClass>com.vms.cmn.dao.impl.UserDaoImpl</serviceClass>
</service>
</beans>
step 3 : 配置web.xml 配置一个XFireConfigurableServlet 内容如下
如果不记得对应类路径可以去xfire-all-1.2.6.jar 包中找对应的 传输http XFire 配置Servlet 文件
<servlet>
<servlet-name>XfireWebService</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XfireWebService</servlet-name>
<url-pattern>/XfireWebService/WebService/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XfireWebService</servlet-name>
<url-pattern>/WebService/*</url-pattern>
</servlet-mapping>
2. 1 webservice 例子介绍
服务端开发
step 1 :定义一个对象
package com.vms.cmn;
import java.io.Serializable;
public class UserInfo implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String sex;
private int age;
public UserInfo() {
super();
}
public UserInfo(Integer id, String name, String sex, int age) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
step 2 :定义一个接口 对应的操作方法 这里我们使用元注解的方式
package com.vms.cmn.dao;
import java.util.Collection;
import javax.jws.WebService;
import com.vms.cmn.UserInfo;
@WebService
public interface IUserDao {
public void insert(UserInfo userInfo);
public void update(UserInfo userInfo);
public Collection<UserInfo> getAll();
}
step 3 :定义接口实现类,这里我们才用spring 的思想接口编程理念
package com.vms.cmn.dao.impl;
import java.util.ArrayList;
import java.util.Collection;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import com.vms.cmn.UserInfo;
import com.vms.cmn.dao.IUserDao;
@WebService
public class UserDaoImpl implements IUserDao {
Collection<UserInfo> userInfoes = new ArrayList<UserInfo>();
public UserDaoImpl() {
for(int i = 0 ; i < 8; i++) {
UserInfo userInfo = new UserInfo(i,"liuqing" + i,i % 2 == 0? "male":"wo",22 + i);
userInfoes.add(userInfo);
}
}
@WebMethod
@WebResult(name="userInfoes")
public Collection<UserInfo> getAll() {
return this.userInfoes;
}
@WebMethod
@Override
public void insert(@WebParam(name="UserInfo" , header=true)UserInfo userInfo) {
authorize(userInfo);
this.userInfoes.add(userInfo);
}
@WebMethod
@Override
public void update(@WebParam(name="UserInfo")UserInfo userInfo) {
authorize(userInfo);
System.out.println("Update ....");
}
public boolean authorize(UserInfo userInfo) {
System.out.println(" UserInfo.name: " +userInfo.getName());
System.out.println(" UserInfo.sex: " +userInfo.getSex());
if(userInfo.getName().equals(userInfo.getSex())) {
return true;
} else {
return false;
}
}
}
step 4:在META-INF/xfire/services.xml 文件中加入对应的webservice实现类
<serviceClass>com.vms.cmn.dao.impl.UserDaoImpl</serviceClass>
在启动Tomcat 就OK
step 5:输入地对应的地址:http://localhost:8080/vms_cmn/WebService/UserDaoImpl?wsdl
就可以得到对应的wsdl 文件如下
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://impl.dao.cmn.vms.com" xmlns:ns1="http://cmn.vms.com" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://impl.dao.cmn.vms.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
- <wsdl:types>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://cmn.vms.com">
- <xsd:complexType name="UserInfo">
- <xsd:sequence>
<xsd:element minOccurs="0" name="age" type="xsd:int" />
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:int" />
<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string" />
<xsd:element minOccurs="0" name="sex" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="ArrayOfUserInfo">
- <xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="UserInfo" nillable="true" type="ns1:UserInfo" />
</xsd:sequence>
</xsd:complexType>.................................................
</wsdl:definitions>
服务端开发成功OK
2.2 根据以上内容开发客户端
step 1 :新建一下web 工程将对应的*.jar 复制到lib 目录下
新建build.xml 文件内客如下
<?xml version="1.0" encoding="UTF-8"?>
<project name="xfireAnt" basedir="." default="createCode">
<property name="xfirelib" value="${basedir}/WebContent/WEB-INF/lib"/>
<property name="sources" value="${basedir}/src"/>
<path id="classpath">
<fileset dir="${xfirelib}">
<include name="*.jar"/>
</fileset>
</path>
<target name="createCode">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="classpath"/>
<wsgen outputDirectory="${sources}"
wsdl="http://localhost:8080/vms_cmn/WebService/UserDaoImpl?wsdl"
package="com.vms.cmn.client" overwrite="true"/>
</target>
</project>
step 2 : 在eclipse 中Ant 运行build.xml 文件
就会自动生成客户端代码
step 3: 测试对应的代码新建一下ClientTest 类 注意对应的JAXBElement对应的创建方法
package com.vms.cmn.client;
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import com.vms.cmn.UserInfo;
public class ClientTest {
/**
* @param args
*/
public static void main(String[] args) {
UserDaoImplClient user = new UserDaoImplClient();
UserDaoImplPortType type = user.getUserDaoImplHttpPort();
UserInfo userInfo = new UserInfo();
userInfo.setAge(23);
JAXBElement<String> userInfoName = new JAXBElement<String>(
new QName("http://cmn.vms.com","name"),String.class,"liuqing");
JAXBElement<String> userInfoSex = new JAXBElement<String>(
new QName("http://cmn.vms.com","sex"),String.class,"male");
JAXBElement<Integer> userInfoId = new JAXBElement<Integer>(
new QName("http://cmn.vms.com","id"),Integer.class,33
);
userInfo.setName(userInfoName);
userInfo.setSex(userInfoSex);
userInfo.setAge(2355);
userInfo.setId(userInfoId);
type.insert(userInfo);
// System.out.println(type.getAll().getUserInfo());
for(UserInfo en:type.getAll().getUserInfo()){
System.out.println(en + "Object");
}
System.out.println("====================");
for(UserInfo en:type.getAll().getUserInfo()){
System.out.println(en + "Object");
}
}
}
运行结果为OK
id:0name: liuqing0sex:maleObject
id:1name: liuqing1sex:woObject
id:2name: liuqing2sex:maleObject
id:3name: liuqing3sex:woObject
id:4name: liuqing4sex:maleObject
id:5name: liuqing5sex:woObject
id:6name: liuqing6sex:maleObject
id:7name: liuqing7sex:woObject
id:33name: liuqingsex:maleObject
====================
id:0name: liuqing0sex:maleObject
id:1name: liuqing1sex:woObject
id:2name: liuqing2sex:maleObject
id:3name: liuqing3sex:woObject
id:4name: liuqing4sex:maleObject
id:5name: liuqing5sex:woObject
id:6name: liuqing6sex:maleObject
id:7name: liuqing7sex:woObject
id:33name: liuqingsex:maleObject
分享到:
相关推荐
webservice中用到的jar,xfire-jsr181-api-1.0-M1.jar,xfire-jsr181-api-1.0-M1.jar
eclipse开发webservice的插件xfire,最终版本1.2.6,
webService-xfire入门 webService-xfire入门
XFire--Webservice入门xfire
WebService 之XFire 开发文档和代码例子
xfire实现webservice实例,XFire WebService开发快速起步
webservice Xfire .jar包
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
webservice-xfire
xfire可以与多种类型的WebService结合使用,如SOAP、REST、XML-RPC等。xfire还提供了一个基于annotation的编程模型,使得开发者可以使用简单的Java代码来开发WebService。 xfire的主要特点包括: 1. 简单易用:...
本例子使用XFire发布WebService+XFire调用WebService-示例
WebService框架Xfire所需的所有jar包。
java webservice基于xfire实例,该文档时继续java的 Xfire的webservie实例.
webService&xfire.ppt
spring+xfire( 编写webservice完整配置+案例)
webservice xfire helloworld 详细图解
webservice的xfire写法,实现服务器端和客户端的简单调用,包含了xfire的所有jar包
webservice Xfire 源碼整合
xfire-jsr181-api-1.0-M1.jar xfire-spring-1.2.2.jar xfire-xmlbeans-1.2.2.jar 支持将Web服务绑定到POJO、XMLBeans、JAXB1.1、JAXB2.0和Castor; 支持基于HTTP、JMS、XMPP等多种协议访问Web服务; 支持多种Web服务...
webService+Xfire入门 一个小例子 完全适合初学者 希望对你们有帮组