创建web services project
(1)建立接口与实现类
(2)引入XFire的jar包. (必须的基本包一共8个)
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorld</name>//这里是服务名(自定义取)
<namespace>www.nh.com.cn/HelloWorld</namespace> //命名空间(自定义)
<serviceClass>com.nh.biz.HelloBiz</serviceClass>//你写的接口的全路径
<implementationClass>com.nh.biz.impl.HelloBizImpl</implementationClass>//写的实现类的全路径
</service>
</beans>
(4)配置web.xml
<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>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/XFireServlet/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(4)访问测试这个服务发布是否成功: http://localhost:8080/项目名/services/服务名。
到这里就已经证明你建立的服务已经成功发布了,就可以写client了。这里只用一个简单的test测试一下
方法一:这里要求的是在要在原本你建好的服务项目里测试,或者是将导服务接口的jar包(导出jar包的)
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
String serviceUrl = "http://localhost:8080/项目名/services/服务名";
HelloBiz client = null;
try {
client = (HelloBiz) factory.create(serviceModel, serviceUrl);
} catch (MalformedURLException e) { }
String serviceResponse = "";
try {
serviceResponse = client.helloworld();//调用接口里面的方法
System.out.println(serviceResponse);
} catch (Exception e) {
System.out.println(e.getMessage());
}
方法二:这里就没有过多的限制
Client c=new Client(new URL("http://localhost:8080/WebServiceTest/services/ResApi?wsdl"));
Object[] results=c.invoke("helloworld", new Object[]{""});//"helloworld"是接口里面的方法
System.out.println(results[0]);
基本的发布服务的方法就是这些,具体的大扩展,就看你自己了。。。