1,在web.xml里配制
<!--配制XFireServlet -->
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
2,在service.xml里配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>BizAccountService</name>
<serviceClass>cn.jbit.jboa.ws.BizAccountService</serviceClass>
<implementationClass>cn.jbit.jboa.ws.BizAccountServiceImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
3,创建包结构,如图
实现类代码如下:
package cn.jbit.jboa.ws;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.codehaus.xfire.transport.http.XFireConfigurableServlet;
import sun.org.mozilla.javascript.internal.Synchronizer;
import cn.jbit.jbos.bean.Account;
public class BizAccountServiceImpl implements BizAccountService {
public List<Account> getBizAccount(String str) {
System.out.println(str.trim());
List<Account> list=new ArrayList<Account>();
Account a1=new Account();
a1.setId(1);
a1.setAcc_money(500);
a1.setAcc_time(new Date());
a1.setAcc_type('0');
a1.setSheet_id(11);
a1.setUsr_id(110);
Account a2=new Account();
a2.setId(2);
a2.setAcc_money(1500);
a2.setAcc_time(new Date());
a2.setAcc_type('0');
a2.setSheet_id(11);
a2.setUsr_id(110);
Account a3=new Account();
a3.setId(3);
a3.setAcc_money(3500);
a3.setAcc_time(new Date());
a3.setAcc_type('0');
a3.setSheet_id(11);
a3.setUsr_id(110);
list.add(a1);
list.add(a2);
list.add(a3);
System.out.println(list.size()+" 返回了");
return list;
}
public String testHello() {
System.out.println("hello! testHello--------------");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "world";
}
}
4,测式类如下:
package cn.jbjt.jboa.ws.client;
import java.util.List;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import cn.jbit.jboa.ws.BizAccountService;
import cn.jbit.jbos.bean.Account;
public class BizAccountSClient {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) {
//创建服务接口模版
Service serviceModel=new ObjectServiceFactory().
create(BizAccountService.class);
//创建代理工厂
XFireProxyFactory factory=
new XFireProxyFactory(XFireFactory.newInstance().getXFire());
//定义web服务地址
String accuntServicURL="http://localhost:8080/LedgerWebService/" +
"services/BizAccountService";
try {
//根据接口模板和Web服务地址返回服务类
BizAccountService bizAccount=
(BizAccountService) factory.
create(serviceModel,accuntServicURL);
//根据参数调用方法,并反回结果
//测试反回字符串
String str=bizAccount.testHello();
System.out.println(str+"------------");
System.out.println("------------");
//测试反回字集合
List<Account> list=bizAccount.getBizAccount("hello");
if(list!=null){
Account acc=null;
for(int i=0;i<list.size();i++){
acc=(Account) list.get(i);
System.out.println(acc.getId()+" : "+acc.getAcc_money());
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
OK!
需要注意可能会报错!原因是要替换一个jar包 wstx-asl-3.2.0.jar 换成wstx-asl-3.2.3.jar
分享到:
相关推荐
总结起来,通过Xfire调用Web服务涉及以下关键步骤: - 获取Web服务的WSDL地址。 - 创建`Client`实例,传入服务URL。 - 从配置文件中读取服务相关配置。 - 使用`Client`的`invoke`方法调用Web服务方法,传入参数。 - ...
6. **测试和调用Web服务**: 现在,你可以通过SOAP请求来调用这个Web服务。你可以使用像 SoapUI 这样的工具,或者在代码中创建一个SOAP客户端来测试你的服务是否正常工作。 这个案例中的压缩包文件可能包含了上述...
综上所述,这个压缩包提供了一个基于Axis1和XFire的Web服务测试案例,以及相关的开发文档和库文件。开发者可以通过学习这些案例和文档,了解如何在Java环境中构建、测试和部署SOAP Web服务。同时,jUnit的测试案例...
案例中会介绍如何使用CXF创建SOAP和RESTful服务,包括服务的配置、接口定义、服务实现以及客户端调用。 5. **XFire框架**: XFire(后来被CXF合并)是早期的Web服务框架,提供了快速构建Web服务的能力。我们将研究...
XFire是基于Axis2和JAX-WS规范的轻量级Web服务框架,它提供了一种简单的方式来创建、发布和调用Web服务。XFire支持多种协议,如SOAP、RESTful等,且与Spring的集成非常紧密,可以通过Spring的配置文件来管理Web服务...
然后,可以使用测试客户端(如T129_WebService_Test中的类)或者通过SOAP UI等工具来调用这些服务,验证它们是否正常工作。 在提供的压缩包文件中,T129_WebService可能包含了Web服务的接口和实现,T129_WebService...
在客户端,XFire提供了CXFProxy类,可以基于WSDL动态生成客户端代理类,使得调用Web服务就像调用本地方法一样方便。此外,XFire还支持JAXB(Java Architecture for XML Binding)来处理XML数据的序列化和反序列化,...
对于已经存在的Web项目,如果想要增加Web服务的支持,可以按照上述步骤在项目中引入XFire框架及相关依赖,然后根据需要定义服务接口和实现类,最终通过MyEclipse的工具发布和测试服务。 #### 15.3 创建单独的客户端...
【描述】:这篇博客文章通过一个实际的案例,探讨了如何将Web服务与Spring框架相结合,使用XFire进行开发。XFire是Spring框架早期用于实现Web服务的一个库,它提供了一种简单而高效的方式来创建和消费SOAP服务。虽然...
在本案例中,"Xfire的client.zip"是一个包含了Xfire客户端代码的压缩包,主要用于调用Web服务。 Xfire客户端代码是实现与Xfire服务器通信的代码库,它可能包含了多种语言的实现,如Java、C#或Python等。这些代码...
4. 客户端调用:服务消费者可以使用XFire提供的客户端API或生成的代理类来调用Web Service。这一步骤通常涉及解析WSDL,创建代理对象,并通过代理对象调用服务方法。 五、实际案例 在“XFire实现WebService例子1”...
总的来说,这个基于XFire的WebService项目是一个很好的学习资源,它涵盖了Web服务的基本概念、XFire的使用方法,以及如何构建和测试Web服务。对于想要深入理解Java Web服务开发的初学者或者开发者来说,这是一个值得...
标题 "Axis+ Xfire 电子书" 暗示了这是一份关于使用 Axis 和 Xfire 进行 Web 服务开发的资源集合。Axis 是一个开源的 Java Web 服务工具包,而 Xfire 是一个曾经流行的游戏即时通讯软件,它支持通过 Web 服务接口与...
这种方式简化了客户端代码的编写,使得调用Web服务如同调用本地方法一样简单。 XFire在处理Web服务时,采用了Java语言的强类型特性,支持包括基本类型、复杂对象以及Java集合等多种数据类型的交换。它还提供了强大...
5. **客户端调用**:Xfire还支持生成客户端代理类,使得客户端可以像调用本地方法一样调用远程Web服务,大大降低了调用的复杂性。 通过这个项目,你可以深入了解Web服务的基本概念,掌握使用Xfire创建和消费Web服务...
本压缩包中的"xFire实现webService服务和使用服务说明"文件,包含了详细的步骤和示例代码,帮助读者深入理解Xfire在Web服务端和客户端的具体应用。建议结合文件内容,动手实践,以巩固理论知识。 **八、总结** 掌握...
- "Web+Services发布与调用(axis,xfire).doc":这份文档可能详细介绍了如何使用xFire和Axis这两个不同的Web服务框架发布和调用Web服务,对比两者的优缺点,帮助开发者选择适合的工具。 - "XFire-WebService.doc":...
总的来说,这个实例是一个典型的Java企业级应用的实战案例,演示了如何利用xfire创建Web服务,通过Spring进行组件管理和事务控制,以及使用Hibernate进行数据库操作。对于想要深入理解这些技术以及它们在Web服务中的...
- 跨域问题:由于同源策略限制,浏览器中的JavaScript直接调用Web服务可能面临跨域问题,需要配置CORS策略。 - 性能优化:大量请求可能导致服务器压力增大,需要考虑缓存策略、负载均衡和性能监控。 - 安全性:...
5. 部署和测试:将项目部署到服务器,通过HTTP请求调用Web服务并验证其功能。 通过以上步骤,开发者可以利用Xfire的强大功能和Spring的灵活性,构建出高效且易于维护的Web服务。这个【xfire服务器端】的示例是一个...