首先,使用到的jar先导入项目中,
xbean-spring-2.8.jar, wsdl4j-1.6.1.jar, commons-httpclient-3.0.jar, commons-codec-1.3.jar, xfire-all-1.2.6.jar, xmlschema-1.1.jar, spring-1.2.6.jar,
commons-logging-1.0.4.jar, jdom-1.0.jar, 这9个包是xfire实现服务器端的webservice主要的包,包含访问webservice和生成webservice
1. 访问webservice文件:
public static String visit(String method, Object[] params) throws Exception{ Client client = new Client(new URL(URL_SPAC)); client.setTimeout(5000); //访问超过5秒钟超时 //设置访问的方法和参数 Object[] results = client.invoke(method, params); return results[0].toString(); }
很简单,就这么几句代码就搞定。 URL_space为http://xxx:8080/WebServices/xxx.asmx?WSDL,就是webservice的访问地址,但一定要到 ?wsdl
暂时没有解决调用端使用数组参数。
2. 生成webservice
在src下新建 META-INF/xfire/services.xml 文件, 文件中这样写
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>webservice名称</name> <serviceClass>java接口类路径</serviceClass> <implementationClass>java接口实现类路径</implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service> </bean>
在web.xml中配置启动加载xfire的servlet类即可,代码如下:
<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> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
这样,一个访问名称为 webservice名称 的webservice就启动起来了