`
Java_大猫
  • 浏览: 175620 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

eclipse3.6+XFire webservice入门

阅读更多
最近学习了一下webservice方面的东西。当然也是入门而已下面来介绍下我的学习成果
PS:若有高手回帖,请手下留情。小弟只是入门而已。分享下学习心得。

至于XFIRE方面的介绍大家直接去官方地址下载相关资料。

简历个web工程。建立接口和实现类
package demo;

public interface HelloService {
	public String sayHello(String name);
}

package demo;

public class HelloServiceImp implements HelloService {
	public HelloServiceImp() {
	
	}
	@Override
	public String sayHello(String name) {
		 return name + ",你好!";
	}

}

接下来在web-inf下的META-INF中建立xfire文件。然后简历services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
  <service>
    <name>HelloWebService</name>
    <serviceClass>demo.HelloWebService</serviceClass>
  </service>
  <service>
  	<name>HelloService</name>
  	<serviceClass>demo.HelloService</serviceClass>
  	<implementationClass>demo.HelloServiceImp</implementationClass>
  </service>
</beans>


到此为止 webservice服务端代码已经构建完成。接下来是客户端

在这里我用了两种方法。
      1:xfire eclipse plugs
      2:非插件形式
第一种比较简单。通过xfire eclipse plugs
新建个亿java工程,然后工程---new--orther--xfire 填入相关jar
建立客户端类:
package wsClient;

import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;

import client.HelloWebServiceClient;
import client.HelloWebServicePortType;

public class Invoke {
// 通过插件方式获取
	public static String invokeServiceNow(String yourName){
		HelloWebServiceClient service = new HelloWebServiceClient();
		HelloWebServicePortType port = service.getHelloWebServiceHttpPort();
		return port.sayHello(yourName);
	}
	//通过获取wsdl URL方式
	public static String invokeServiceTwo() throws MalformedURLException, Exception{
		String wsdl = "http://localhost:8080/webServiceDemo/services/HelloWebService?wsdl";
		 Client client = new Client(new URL(wsdl));
 
		 Object[] results = client.invoke("sayHello", new Object[] { "Firends" });
		return (String) results[0];
	}
	
	
	
	
	public static void main(String[] args) throws MalformedURLException, Exception {
		String yourName ="Viken";
		System.out.println(Invoke.invokeServiceNow(yourName));
		System.out.println(Invoke.invokeServiceTwo());

	}

}


第二种非插件方式,直接在服务端工程建立客户端类
package demo;

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 Client {

	public static void main(String[] args) {
		Service serviceModel = new ObjectServiceFactory().create(HelloService.class);

		XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
		String url ="http://localhost:8080/webServiceDemo/services/HelloService";
	
		try {
			HelloService hwvs= (HelloService)factory.create(serviceModel, url);
			System.out.println(hwvs.sayHello("大猫"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		};
	
	}

}


这里我帖一下我学习时用到的博客地址,感谢一下博客地址作者的知识共享
http://www.blogjava.net/fastzch/archive/2008/08/26/172535.html
http://www.blogjava.net/fastzch/archive/2008/08/28/225439.html
http://blog.csdn.net/ynpp/archive/2008/01/08/2030552.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics