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

xfire 编撰webservice例子

2012-07-25 
xfire 编写webservice例子来自 : http://www.blogjava.net/jiujiubuzui/articles/293616.html利用xfire编

xfire 编写webservice例子
来自 :
http://www.blogjava.net/jiujiubuzui/articles/293616.html


利用xfire编写webservice的例子,内容如下

1. xfire + spring 发布webservice
2. 利用 javascript  调用发布的webservice

使用xfire+spring发布webservice其实很简单,遵循一下几个步骤即可

1. 想要发布成文webservice的类,必须实现接口
2. 3个配置文件(后面详细说)

下面针对以上步骤详细说明
关于1中的要求,给个例子就明白了
Itest.java 代码

package test; 
 
import org.json.JSONException; 
 
public interface IHello 

    public String hello(); 
    public String helloTo(String name); 
    public String getJsonData(String pageIndex,String pageSize); 


   
HelloImpl.java 代码

package test; 
 
import java.util.*; 
 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpSession; 
 
import org.codehaus.xfire.transport.http.XFireServletController; 
import org.json.JSONException; 
import org.json.JSONStringer; 
 
public class HelloImpl implements IHello 

 
    public String hello() 
    { 
    return "hello"; 
    } 
 
    public String helloTo(String name) 
    { 
    return " hello " + name + "!"; 
    } 
 
    private void example() 
    { 
    //使用session 
     HttpServletRequest request = XFireServletController.getRequest(); 
     HttpSession session = request.getSession(); 
    } 
 
    public String getJsonData(String pageIndex,String pageSize)  
    { 
    String rtnValue = ""; 
     
    rtnValue = ""; 
    for(int i=0;i<Integer.parseInt(pageSize);i++) 
    { 
        rtnValue = rtnValue + "{'lastname': 'last" + pageIndex + "-" + i + "', 'firstname': 'first" + pageIndex + "-" + i + "' },"; 
    } 
    rtnValue = rtnValue + "{'lastname': 'last', 'firstname': 'last' }"; 
     
    rtnValue = "{'context':["  + rtnValue + "],'pager':[{'totalRecord':'100','totalpage':'10','pageIndex':'" + pageIndex + "','pageSize':'10'}]}"; 
     
    return rtnValue; 
    } 


就这样写就可以了

关于三个配置文件

web.xml修改如下
xml 代码

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
  <!-- 配置文件路径 开始 --> 
    <context-param> 
        <param-name>log4jConfigLocation</param-name> 
        <param-value>/WEB-INF/classes/log4j.properties</param-value> 
    </context-param> 
    <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value> 
            /WEB-INF/classes/applicationContext*.xml 
            classpath:org/codehaus/xfire/spring/xfire.xml 
        </param-value> 
    </context-param> 
     
    <!-- 启动时加载SpringContextServlet --> 
    <listener> 
        <listener-class> 
            org.springframework.web.context.ContextLoaderListener 
        </listener-class> 
    </listener> 
    <listener>  
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
    </listener>  
 
    <listener> 
        <listener-class> 
            org.springframework.web.util.IntrospectorCleanupListener 
        </listener-class> 
    </listener> 
     
      <!-- XFire 配置 --> 
      <servlet>  
        <servlet-name>xfire</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
      </servlet>  
       
      <servlet-mapping> 
        <servlet-name>xfire</servlet-name> 
        <url-pattern>*.ws</url-pattern> 
      </servlet-mapping> 
       
      <welcome-file-list> 
        <welcome-file>index.html</welcome-file> 
      </welcome-file-list> 
</web-app> 

这里注意   classpath:org/codehaus/xfire/spring/xfire.xml  必须要写进去

xfire-servlet.xml 新建这个文件,并且和web.xml放在同一个文件夹
注意: 名称和位置都不能变(也许可以改,我不知道)

xml 代码
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans>  
    <bean parent="webService" abstract="true"> 
        <property name="serviceFactory"> 
            <ref bean="xfire.serviceFactory" /> 
        </property> 
        <property name="xfire"> 
            <ref bean="xfire" /> 
        </property> 
     </bean> 
</beans> 

spring 的配置文件 applicationContext-webService.xml
xml 代码
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">   
<beans> 
    <bean id="testBean" class="test.HelloImpl"></bean> 
</beans> 

查看wsdl    http://localhost:8080/mootools/testService.ws?wsdl

运行 进入 index.html 页面,点击 即可执行调用,正常显示表示发布成功,调用失败会返回error(运行前请修改index.html文件的源码,将url修改成真正的url)

热点排行