JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
今天终于把webservice搞完了,写个总结,我是在原来的项目中,进行webservice扩展的。

    首先在已完成的项目中加入webservice支持,如图

   

 

下一步

   

    接下来选择xfire包

   

    finish 完成。

    这样在你的项目中会产生xfire的工具包,这里完全可以自己将所需要的包放入lib下。

    由于我的原始项目是ssh的,这里就不再说了,接下来进行xfire配置。

    首先web.xml

 1  <!-- begin XFire 配置 -->
 2    <servlet>   
 3       <servlet-name>xfire</servlet-name>   
 4       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5    </servlet>   
 6    <servlet-mapping> 
 7       <servlet-name>xfire</servlet-name>
 8       <url-pattern>*.ws</url-pattern>
 9    </servlet-mapping>
10    
11 <!-- 配合Spring容器中XFire一起工作的Servlet-->  
12   <servlet>
13    <servlet-name>XFireServlet</servlet-name>
14    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
15  </servlet>
16  <servlet-mapping>
17    <servlet-name>XFireServlet</servlet-name>
18    <url-pattern>/servlet/XFireServlet/*</url-pattern>
19  </servlet-mapping>
20  <servlet-mapping>
21    <servlet-name>XFireServlet</servlet-name>
22    <url-pattern>/services/*</url-pattern>
23  </servlet-mapping>

 接下来在src下面建立xfire-servlet.xml

      这里说说为什么定义窄接口,原因xfire会导出spring整个接口,不能控制那些暴露给用户,这样做就不会将所有接口暴露给用户。

    下来说说,在项目下生成的services.xml,这个里面是按照spring2.0的命名空间配置的,所以改写这个xml

    

 这样就不会出错了。

 这样启动Tomcat,如果启动时抛以下异常,则删掉发布后lib中的spring1.2版本,原因与spring2冲突

 org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null"还有一些就不多说了。

 服务器启动后,在项目名后面键入/services 则出现wsdl,另存为即可。

 

 看看我的spring配置文件 ,和上面的xfire-servlet.xml对应起来。

 1<!-- webservice -->
 2    <bean id="iwebserviceTarget" class="com.seavision.huayi2.service.impl.WebserviceImpl">
 3         <property name="businsesslogDAO">
 4            <ref local="TBusinsessLogDAO"/>
 5        </property>
 6        <property name="sationmonthreportDAO">
 7            <ref local="TStationMonthReportDAO"/>
 8        </property>        
 9    </bean>
10     <bean id="webservicesService" parent="txProxyTemplate">
11        <property name="target" ref="iwebserviceTarget">
12        </property>
13    </bean>

 

    service即实现类如下,此代码仅为本人项目代码,仅供参考,切勿抄送

   

 1public interface IWebservice {
 2    /***************
 3     * 取得基础数据表中所有数据,以基础数据建立日期的倒叙排序(HY0703)
 4     * @throws DAOException 
 5     * ******************/

 6    public List<TBusinsessLog> getYeWuList();
 7    /*******************************
 8    *增加工作站月工作计划信息
 9    ********************************/

10    public boolean insertYueJiHua(TStationMonthReport tStationMonthReport);
11}

12

 

 实现类

 1public class WebserviceImpl implements IWebservice{
 2    TBusinsessLogDAO  businsesslogDAO;
 3    TStationMonthReportDAO    sationmonthreportDAO;
 4
 5    
 6    public TStationMonthReportDAO getSationmonthreportDAO() {
 7        return sationmonthreportDAO;
 8    }

 9
10
11    public void setSationmonthreportDAO(TStationMonthReportDAO sationmonthreportDAO) {
12        this.sationmonthreportDAO = sationmonthreportDAO;
13    }

14
15
16    public TBusinsessLogDAO getBusinsesslogDAO() {
17        return businsesslogDAO;
18    }

19
20
21    public void setBusinsesslogDAO(TBusinsessLogDAO businsesslogDAO) {
22        this.businsesslogDAO = businsesslogDAO;
23    }

24
25
26    public List<TBusinsessLog> getYeWuList(){
27        System.out.println("调用ok");
28        String hql="from TBusinsessLog as t order by t.cretateDate desc";
29        List<TBusinsessLog> list= new ArrayList<TBusinsessLog>();
30        try {
31            List blist=businsesslogDAO.find(hql);
32            for(int i=0;i<blist.size();i++){
33                list.add((TBusinsessLog) blist.get(i));
34            }

35        }
 catch (DAOException e) {
36            // TODO Auto-generated catch block
37            e.printStackTrace();
38        }

39        return list;
40    }

41    
42    /*******************************
43    *增加工作站月工作计划信息
44    ********************************/

45    public boolean insertYueJiHua(TStationMonthReport tStationMonthReport) {    
46        System.out.println("调用ok");
47        try {
48            System.out.println("++++++++++"+tStationMonthReport.getStationMonthReportId());
49            sationmonthreportDAO.save(tStationMonthReport);
50            return true;
51        }
 catch (DAOException e) {
52            
53            e.printStackTrace();
54            return false;
55        }

56
57    }

58


 dao层就不说了,到此完毕。

posted on 2010-04-27 10:51 rogerfan 阅读(2041) 评论(0)  编辑  收藏 所属分类: 【开源技术】

只有注册用户登录后才能发表评论。


网站导航: