java中WebService的HelloWorld

WebService的HelloWorld

首先,在MyEclipse中创建一个WebService项目,默认即可
也可以手动创建一个Web项目,然后导入WebService的XFire核心包
创建一个与WebRoot同级的目录WebServices,并在其中新建一个services.xml,这是WebService的配置文件
在web.xml中配置WebService的URL MAP

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

 
创建一个普通接口和一个实现类(无需继承其他类)
额..感觉与RMI很类似。。但是WebService是基于HTTP和XML的,所以任何语言都可以调用

public interface ITestInterface {
	String test();
}

 实现类

public class TestImpl implements ITestInterface {
	public String test() {
		System.out.println("I am running...");
		return "zhougege...";
	}
}

 配置WebService,在services.xml中配置此接口

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
	<name>TestWebService</name>
	<namespace>www.test.com/test</namespace>
	<serviceClass>webservice.biz.ITestInterface</serviceClass>
	<implementationClass>webservice.impl.TestImpl</implementationClass>
</service>
</beans>

 

如此,服务器就写好了,部署到Tomcat,运行,测试
http://localhost:8050/WebServiceTest/services/TestWebService?wsdl
可以显示XML文件,则OK了

编写客户端程序:java版
1.导入XFire核心包和Client包
2.编写测试接口,可以采取与服务器完全相同的接口,也可以编写接口名不相同的接口,但是方法一定要相同

public interface ITestInterface {
	String test();
}

 

3.编写测试代码。。硬编码

Service service = new ObjectServiceFactory().create(IClientInterface.class);
		//创建Web服务的代理
		XFire xFire = XFireFactory.newInstance().getXFire();
		XFireProxyFactory factory = new XFireProxyFactory(xFire);
		//获取Web服务的地址
		String url = "http://localhost:8050/WebServiceTest/services/TestWebService";
		//生成天气预报Web服务调用对象
		try {
			IClientInterface ig = (IClientInterface) factory.create(service, url);
			System.out.println(ig.test());
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}

  4.运行,OK

你可能感兴趣的:(webservice)