文档章节

Xfire simple Webservices to implement and call

boonya
 boonya
发布于 2013/06/13 22:46
字数 451
阅读 238
收藏 0

1、易出现问题地方,Jar缺少或冲突

XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,
XFire的配置非常简单,可以非常容易地和Spring集成。
下载地址:http://xfire.codehaus.org/Download 但是jar很容易出错,我试了很久才成功网上虽然很多实例但是照着做也不容易成功主要是jar导致的失败让人很有挫败感,所以在此总结贴出比较多的Jar(有些jar未用到,但是建议保留)。

2、开发项目目录Jars

 

 

3、创建webservice借口

package com.boonya.xfire.ws;

public interface IUserServices {
	
	public String sayHello(String message);
	
}
4、 实现 webservice接口
package com.boonya.xfire.ws;

public class UserServicesImpl implements IUserServices {
	
	public String sayHello(String message) {
		System.out.println(message);
		return message; 
	}
	
}
5、 编写 代理 客户端 测试
package com.boonya.xfire.ws;

import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

public class UserTestClient {

	public static void main(String[] args) throws MalformedURLException {
		Service service = new ObjectServiceFactory()
				.create(IUserServices.class);
		XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
				.newInstance().getXFire());
		String url = "http://localhost:8080/myws/services/UserServices";
		IUserServices userService = (IUserServices) factory.create(
				service, url);
		String res = userService.sayHello("Hello boonya ,you singned sucess!");
		System.out.println(res);

	}

}
6、 src 目录 创建META-INF, 下面 创建 xfire 文件夹, 并在 xfire 文件夹 创建 services. xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">

	<service>
		<name>UserServices</name>
		<namespace>http://ws.com</namespace>
		<serviceClass>com.boonya.xfire.ws.IUserServices</serviceClass>
		<implementationClass>com.boonya.xfire.ws.UserServicesImpl</implementationClass>
		<style>wrapped</style>
		<use>literal</use>
		<scope>application</scope>
	</service>
</beans>
7、 配置 xfire web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <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>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
8、 myw s 加入 Tomcat 容器, 部署 启动

在浏览器输入如下内容访问


客户端后台代理测试结果如下:

© 著作权归作者所有

boonya
粉丝 79
博文 330
码字总数 64084
作品 0
海淀
高级程序员
私信 提问
ORACLE OC4J服务器不支持XFire webservices的解决方案

在开发项目的时候,调式demo时,采用XFire架构的webservices在tomcat下能正常运行,但是迁移到Oracle oc4j服务器下后失效了,无法运行,调用服务时总是显示错误,而且有两个命名空间,查了好久,网络...

Samir
2013/06/27
131
0
XFire组件开发WebService实例

1.websevice简介 WebService又是一种高级应用,与之前学习的Struts、Spring、Hibernate等框架不同。WebService是面向服务的架构(SOA)。那么它到底是做什么用的?什么才是面向服务的架构?让...

小明子
2013/09/27
1.1W
0
WebService框架JWS、Axis2、XFire、CXF的区别

1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径...

liangyx
2012/12/15
5.2K
1
Myeclipse中添加XFire插件支持

Myeclipse中添加XFire插件支持 自Myeclipse7.5后貌似默认不启用XFire插件的集成 本人今天使用Myeclipse10.6是发现没有XFire 自己捣鼓捣鼓 已经成功添加XFire 添加步骤 1.打开Myeclipse->Help...

huyuner1
2018/06/26
0
0
Java调用.Net WebService 发生异常:服务器未能识别 HTTP 头 SOAPA...

使用XFire方式调用这个Web服务,但出现了异常:SoapException: 服务器未能识别 HTTP 头 SOAPAction 的值。 这可能是 Client 端没有正确的按照 WSDL 建立反项工程的原因。 我们的WSDL地址是:...

钱佳庆
2011/10/04
549
1

没有更多内容

加载失败,请刷新页面

加载更多

Kettle自定义jar包供javascript使用

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。 本篇文章有参考自:https://www...

CREATE_17
昨天
58
0
处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
昨天
57
0
如何克隆一个Date对象?

将Date变量分配给另一个变量会将引用复制到同一实例。 这意味着更改一个将更改另一个。 如何实际克隆或复制Date实例? #1楼 简化版: Date.prototype.clone = function () { return new ...

技术盛宴
昨天
61
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
昨天
106
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
昨天
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部