首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

基于 xfire 筑 web service

2012-07-31 
基于 xfire 建 web service方法一:测试环境:windows xp,jdk1.5.0_4,tomcat5.0.28,myeclipse5.1,xfire1.2,c

基于 xfire 建 web service
方法一:
测试环境:windows xp,jdk1.5.0_4,tomcat5.0.28,myeclipse5.1,xfire1.2,commons-httpclient3.0

(1)service

利用 myeclipse 5.1
1.新建 web service project 填入项目名,其它都默认
2.右建点项目名,新建一个web service 例子
3.把serializer.jar,xalan.jar 放入lib 下(或放入%tomcat%/common/endorsed 下),没有它们,在jdk1.5 下会有错误,包文件可以在下面的例子里找
4.发布到 tomcat 下 ,
5.网页输入 http://192.168.0.108:8080/WSservice/services/TestService?wsdl 测试

(2) client

1.新建 web service project 填入项目名,其它都默认
2.导入 xfire-httpclient-libraries
3.导入 commons-httpclient-3.0.jar (可在上传的例子里找到)
4.将 service project 里面的要调用的相关接口打成 jar 包并放到本例子的lib 下
5.写一个测试类,如下:

package test;import java.net.MalformedURLException;import org.codehaus.xfire.XFire;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import com.test.Itest;public class HelloClient {public static void main(String[] args) {Service srvcModel = new ObjectServiceFactory().create(Itest.class);XFire xfire = XFireFactory.newInstance().getXFire();XFireProxyFactory factory = new XFireProxyFactory(xfire);String serviceUrl = "http://192.168.0.108:8080/WSservice/services/TestService";Itest hs = null;try {hs = (Itest) factory.create(srvcModel, serviceUrl);} catch (MalformedURLException e) {e.printStackTrace();}System.out.println(hs.example("Jivam"));}}


6.直接运行测试

方法二:
1. 新建一个普通 web 项目
2. 把方法一里面的相关包导入
3. 配置 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>

4.类似上面步骤新建servcie类或client 类
5.在WEB-INF/classes/ 下新建 META-INF/xfire/services.xml ,内容模仿上面的写,样例:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"><service><name>TestService</name><serviceClass>com.test.ITestService</serviceClass><implementationClass>com.test.TestServiceImpl</implementationClass><style>wrapped</style><use>literal</use><scope>application</scope></service></beans>


6.网页打开http://127.0.0.1:8080/web_service/services/TestService?wsdl 测试

=========web项目过滤器中怎么安全的过滤WebService请求========

如果web.xml中 xFire的url-pattern地址是 <url-pattern>/services/*</url-pattern>

那么在相应的Filter中应这样过滤才是安全的:

HttpServletRequest req = (HttpServletRequest)request;
if(req.getServletPath().equals("/services")){
        chain.doFilter(request, response);
}

热点排行