怎么使用xfire调用做的webservice客户端调用

后边有个项目需要接入4A,要用到webService服务,暂时还不确定是不是会有我的事,但为了有备无患,还是抽时间学习了以下相关的知识。本来我所了解到的发布webService服务有用cxf和xfire两种,但这个项目明确说了需要用xfire,因此便先学习一下这个。参考网上一些文档,搭建的过程大概如下:一、环境基础:eclipse4.4.1、maven3.2.5、tomcat7、jdk1.7;二、搭建过程:&&& 1、下载依赖jar包:由于看到那些xfire入门教程中都说要先下载XFire 框架的安装包,而我在那些文章里提供的官网都没有找到下载的地方,于是只好放弃掉,最终在csdn中下载到,这些包如下图所示:&&&&& 2、使用eclipse创建一个maven web项目,创建完基本结构如图(由于我的eclipse有些问题,导致项目名上有个红叉,不影响功能):& &&& &&3、在src下的webapp的WEB-INF下创建一个lib文件夹,然后把下载好的xfire的依赖jar包粘贴进来,并选中lib中所有的jar包右键加入到build path中,如图:& && &4、在/src/main/resources下建立META-INF/xfire文件夹,然后在里边创建services.xml,xml文件最终的配置代码如下:&&&?xml version=&1.0& encoding=&UTF-8&?&
beans xmlns=&http://xfire.codehaus.org/config/1.0&&--&
&service xmlns=&http://xfire.codehaus.org/config/1.0&&
&!-- webService服务的名称 --&
&name&HelloWorld&/name&
&namespace&http://xfireTest/HelloWorldService&/namespace&
&!-- 自己所写的接口路径 --&
&serviceClass&
xfireTest.HelloService
&/serviceClass&
&!-- 实现类路径 --&
&implementationClass&
xfireTest.HelloWorldServiceImpl
&/implementationClass&
&/service&
&/beans&5、配置web.xml文件,内容如下:&?xml version=&1.0& encoding=&UTF-8&?&
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns=&/xml/ns/javaee& xmlns:web=&/xml/ns/javaee& xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd& id=&WebApp_ID& version=&3.0&&
&display-name&xfireTest&/display-name&
&description&
使用eclipse和maven搭建基于XFire框架发布Web服务的例子
&/description&
&servlet-name&XFireServlet&/servlet-name&
&servlet-class&
org.codehaus.xfire.transport.http.XFireConfigurableServlet
&/servlet-class&
&/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&
&/web-app&6、创建相关的业务逻辑代码,如下:& service接口:&package xfireT
public interface HelloService {
* Hello 方法声明了 Web 服务对外暴露的接口
* @return 返回给客户端的字符串
public String Hello();
}& 实现类:package xfireT
public class HelloWorldServiceImpl implements HelloService {
* Hello 方法为 HelloWorldService 服务接口定义的 sayHello 方法提供具体实现
public String Hello() {
return &HelloWorld!&;
& 7、如上基本上就搭建完成了,但是当我启动的时候出现了如下的异常:& 警告: Failed to scan JAR [file:/D:/eclipseWorkspace1/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/webapps/xfireTest/WEB-INF/lib/XmlSchema-1.1.jar] from WEB-INF/lib
java.util.zip.ZipException: zip file is empty检查之后才发现这个下载的包中。这个jar是空的,从第一张图中也可以看到字节数是0.于是只好从网上重新下载这个包再放进去。再启动之后可以正常访问,证明webService服务发布成功,访问如图:8、另外,在查资料的时候又看到有的地方说需要xalan相关的jar包,不过不知道是版本问题还是其他的,我这里并没有导入这些包。参考:
本文已收录于以下专栏:
相关文章推荐
常见错误及解决办法:       1.jar包冲突       如果运行后得到以下错误org.codehaus.xfire.XFireRuntimeException: Could...
基于xfire实现webservice的实例
       首先下载xfire的jar包,并导入项目当中
       下载地址:http://xfire.co...
昨天用xfire搭好了一个简单的webService的服务,可以在浏览器访问,今天便想要尝试以下如何调用这个服务及相关的方法。在网上查找了一些资料后,实现过程如下。1、创建一个maven web项目,...
java中大家常用的是调用别人的webservice,那么如何发布webservice:
一、 一个非webservice项目,如何发布webservice
1、首先要给项目里添加xfire...
1. 运行环境
  (1)  操作系统:windows10
  (2) JDK : 1.7
  (3) IDE : Myeclipse10
  (4) xfire : xfire1.2.6
XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。
相 对于Axis来说,...
我选择的是XFire来创建webservice服务,不因为别的,只是因为它很方便,实用。
webservice诞生,原理,以及其运用,和为什么要使用webservice ,我就不多说了。直接看最...
XFire创建WebService服务端和客户端
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)xfire客户端调用.net IIS 配置的webservice 总报错 - WebService - WebServices - ITeye群组
使用eclipse 生成了个 xfire的客户端,用来访问.net的webservice
1、服务端未加证书验证时调用正确
2、加入证书验证后,将客户端的证书已经导入到jdk的信任库中,但是调用的时候报如下错误:
011-3-8 10:20:41 org.codehaus.xfire.transport.http.HttpChannel sendViaClient
严重: Server returned error code = 403 for URI : https://192.168.172.129:444/WebSetup2/Service1.asmx?op=HelloWorld. Check server logs for details
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Server returned error code = 403 for URI : https://192.168.172.129:444/WebSetup2/Service1.asmx?op=HelloWorld. Check server logs for details
org.codehaus.xfire.fault.XFireFault: Server returned error code = 403 for URI : https://192.168.172.129:444/WebSetup2/Service1.asmx?op=HelloWorld. Check server logs for details
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:83)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy7.helloWorld(Unknown Source)
at org.tempuri.Service1Client.main(Service1Client.java:124)
Caused by: org.codehaus.xfire.XFireRuntimeException: Server returned error code = 403 for URI : https://192.168.172.129:444/WebSetup2/Service1.asmx?op=HelloWorld. Check server logs for details
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:130)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
... 6 more
查看服务端日志,发现报的是403 7 5(
& HTTP 错误 403.7 - 禁止访问:需要 SSL 客户证书。)
请问下xfire客户端该怎么把证书发送过去?
客户端部分代码:
&&&&
&&&&&&& Service1Client client = new Service1Client();
//create a default service endpoint
&&&&&&& Service1Soap service = client.getService1Soap();
&&&& // The path to the certificate.
&&&&&&&
&&&&&&& System.out.println("begin test ");
&&&&&&& System.out.println("helloworld "+service.helloWorld());
&&&&&&&
System.out.println("test client completed");
&&&&&&& System.exit(0);
相关资源推荐首先,我们在eclipse中建立一个WebService工程作为服务端,并编写如下代码:
IHelloService.java& 服务接口,有一个方法,参数和返回值均为复杂类型User
package&public&interface&IHelloService&...{&&&public&User&getUser(User&user);}
注意,这个javabean里必须要有一个默认没有参数的构造方法,否则在进行aegis绑定会有不能实例化user对象的异常
package&import&java.io.Spublic&class&User...{&&private&String&&&private&String&&&public&User()...{&&&&&&&&}public&User(String&username,&String&password)&...{&&&&super();&&&&this.username&=&&&&&this.password&=&}public&String&getPassword()&...{&&&&return&}public&void&setPassword(String&password)&...{&&&&this.password&=&}public&String&getUsername()&...{&&&&return&}public&void&setUsername(String&username)&...{&&&&this.username&=&}}
HelloServiceImpl.java
方法实现是传进来一个user对象,把这个对象的username,password变成我们设置的数值,然后返回这个对象
package&public&class&HelloServiceImpl&implements&IHelloService&...{&&&&public&void&print()&...{&&&&&&&&System.out.println(&action&);&&&&}&&&&public&User&getUser(User&user)&...{&&&&&&&&&&&&user.setUsername(&new&name&);&&&&&&&&user.setPassword(&new&password&);&&&&&&&&return&&&&&}}
IHelloService.aegis.xml 为复杂参数和返回类型绑定,和IHelloService在一个包下
&?xml&version=&1.0&&encoding=&UTF-8&?&&mappings&&&&&&mapping&&&&&&&&&&method&name=&getUser&&&&&&&&&&&&&&&parameter&index=&0&&componentType=&test.User&/&&&&&&&&&&&&&&return-type&componentType=&test.User&/&&&&&&&&&&/method&&&&&&&&&&&&&&/mapping&&/mappings&
services.xml& xFire发布文件
&?xml&version=&<span style="COLOR: #.0&&encoding=&UTF-8&?&&beans&&service&xmlns=&http://xfire.codehaus.org/config/1.0&&&name&HelloService&/name&&namespace&http://test/HelloService&/namespace&&serviceClass&test.IHelloService&/serviceClass&&implementationClass&test.HelloServiceImpl&/implementationClass&&/service&&/beans&
部署到tomcat中,在浏览器中运行
如果部署正确,讲出现XFire生成的wsdl文件
把IHelloService.java, IHelloService.aegis.xm,User.java打包成jar
下面,我们编写消费WS的客户端
新建一个java工程,把服务端的jar放到classpath中,当然,服务和客户端都要有XFire的类库
package&import&java.net.MalformedURLEimport&org.codehaus.xfire.client.XFireProxyFimport&org.codehaus.xfire.service.Simport&org.codehaus.xfire.service.binding.ObjectServiceFimport&test.IHelloSimport&test.Upublic&class&Client&...{&&&&/**&*//**&&&&&*&@param&args&&&&&*/&&&&public&static&void&main(String[]&args)&...{&&&&&&&&User&user=new&User(&<span style="COLOR: #&,&<span style="COLOR: #&);&&&&&&&&String&serviceURL=&http://localhost:8080/XFire/services/HelloService&;&&&&&&&&Service&serviceModel&=&new&ObjectServiceFactory().create(IHelloService.class,null,&http://test/HelloService&,null);&&&&&&&&XFireProxyFactory&serviceFactory&=&new&XFireProxyFactory();&&&&&&&&IHelloService&service&=&null;&&&&&&&&&&&&&try&...{&&&&&&&&&&&&service&=&(IHelloService)&serviceFactory.create(serviceModel,&serviceURL);&&&&&&&&&&&&&&&&&&&&&user=service.getUser(user);&&&&&&&&&&&&&&&&&&&&&&&&System.out.println(user.getUsername()+&&-&&+user.getPassword());&&&&&&&&&}&catch&(MalformedURLException&e)&...{&&&&&&&&&&&&e.printStackTrace();&&&&&&&&}&&&&}}
在tomca安装目录下的bin中启动tomcat(注意不要使用eclipse环境中的启动插件,否则运行客户端时候会自动关掉服务)
运行结果:
new name - new password
真是我们想要的结果
本文已收录于以下专栏:
相关文章推荐
虽然XFire现在已经被CXF取代,但在现在已经开发的项目中,还是有不少使用XFire来实现Web Service的。前段时间,我写的使用XFire开发Web Service服务端的文章《XFire完...
使用XFire开发Web Service客户端完整入门教程
本Blog所有内容不得随意转载,版权属于作者所有。如需转载请与作者联系(
未经许可的转...
Java 社区一直试图将 POJO 的作用发挥到极致,降低 Java 应用实现的难度,最近的尝试是将 EJB3.0 建立在 POJO 之上;另一方面,SOA 是目前 Java 社区炙手可热的名词,非常...
网上关于XFire入门的教程不少,要么是讲得很简单,就像Hello World一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可...
XFire完整入门教程
本Blog所有内容不得随意转载,版权属于作者所有。如需转载请与作者联系(
未经许可的转载,本人保留一切法律权益。
教程(2)依据教程(1)中提供的WSDL契约,对其发布的webService创建了一个简单的客户端;本文详细介绍一下webService客户端开发的一般步骤。
生成Stub代码
在CXF中...
网上关于XFire入门的教程不少,要么是讲得很简单,就像Hello World一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可...
斌斌&#160;(给我写信)
原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处!
XFire是一个免费的开源SOAP框架,它提供简单的API支持Web Service...
http://blog.csdn.net/feixueqianer/article/details/5850530
由于MyEclipse中已经集成了XFire框架,所以在MyEclipse下...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
怎么使用xfire 调用&#46;net做的webservice
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 xfirewebservice 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信