`
liaokang.java
  • 浏览: 151973 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

xfire开发WebService

阅读更多
开发WebService的框架不少,每个框架都有各自的有点,最近我用xfire练习开发WebService,下面是开发WebService的小例子,希望对入门的人有些小帮助
1.新建一个java web project命名为TestWebService,将xfire相关的jar包添加到lib目录中,写接口类和实现类
package com.lamp.service;

public interface MessageService {
	public String getName(String name);
}

实现类
package com.lamp.service.impl;

import com.lamp.service.MessageService;

public class MessageServiceImpl implements MessageService {

	public String getName(String name) {
		return "hellow " + name + ", welcome to WebService world";
	}

}


在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>MessageService</name>
    <serviceClass>com.lamp.service.MessageService</serviceClass>
    <implementationClass>com.lamp.service.impl.MessageServiceImpl</implementationClass>
  </service>
</beans>

最后在web.xml中配置xfire的servlet
<servlet>
		<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>

项目部署后在浏览器中通过http://localhost:8080/TestWebService/services访问看到远程访问的接口,并得到wsdl为http://localhost:8080/TestWebService/services/MessageService?wsdl

这样服务器端开发完毕,现在开始客户端的开发
新建一个java project也将xfire相关的jar引入,我用ant在客户端生成代理对象,在项目路径下新建build.xml,代码为
<?xml version="1.0" encoding="UTF-8"?>

<project name="WebService" basedir="." default="gen-webservice">

	<property file="build.properties">
	</property>

	<path id="project-classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" /> 
		</fileset>
	</path>

	<target name="gen-webservice">
		<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="project-classpath" />

		<wsgen outputDirectory="${src.dir}"
		  wsdl="${wsdl.dir}" package="com.lamp.ws.client" overwrite="true"/>
		
	</target>

</project>

其引入的build.properties文件也在项目路径下
src.dir=${basedir}/src
lib.dir=F:/WebService/xfire-1.2.6/lib
wsdl.dir=http://localhost:8080/TestWebService/services/MessageService?wsdl
其中lib.jar为我存放xfire的路径,运行ant得到代理对象
编写一个测试类
package com.lamp.test;

import com.lamp.ws.client.MessageServiceClient;
import com.lamp.ws.client.MessageServicePortType;

public class TestGetName {

	public static void main(String[] args) {
		MessageServiceClient msg = new MessageServiceClient();
		MessageServicePortType portType = msg.getMessageServiceHttpPort();
		String result = portType.getName("张三");
		System.out.println(result);
	}

}

运行在控制台看到了hellow 张三, welcome to WebService world至此一个简单的WebService开发完毕
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics