一、首先搭好SSH框架:

1、 Struts:MyEclipse菜单栏MyEclipse——》Project Capabilities——》Add Struts Capabilities,选择版本Struts 1.3,ApplicationResources项去掉路径部分,最好也去掉下面的Install Struts TLDs复选框,完毕。

WEB-INF\web.xml配置文件(<servlet>要在<listener>后面)

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

2、 Hibernate:先配好数据库链接,然后菜单栏MyEclipse——》Project Capablilities——》Add Hibernate Capabilities,选版本Hibernate 3.1,库里就选Hibernate 3.2 Core Libraries,最后的Create SessionFactory class选项去掉,因为要用Spring来管理。

applicationContext.xml配置文件

<!-- 工厂对象 -->

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="configLocation"value="classpath:hibernate.cfg.xml">

</property>

</bean>

3、 Spging:菜单栏MyEclipse——》Project Capablilities——》Add Spging Capabilities,版本选Spring 2,库选核心库Spring 2.5 Core Libraries,OK

WEB-INF\web.xml配置文件

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

二、然后增加XFire部分:

1、 添加XFire库包:在工程目录下,打开.classpath文件,增加一行<classpathentrykind="con" path="melibrary.com.genuitec.eclipse.ws.xfire.MYECLIPSE_XFIRE_CORE"/>保存,然后到MyEclipse中刷新即可看到加载进来XFire库包了。

2、 添加必要的JAR包到WebRoot\WEB-INF\lib下面:数据库包如classes12-9i.zip、msbase.jar、mssqlserver.jar、msutil.jar,Spring Web包(如果搭spring框架时选了spring web包应该就有了)如spring-web.jar、spring-webmvc.jar。

3、 修改WEB-INF\web.xml配置文件,在<listener>后面增加<servlet>

<servlet>

<servlet-name>XFireServlet</servlet-name>

<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>

<load-on-startup>0</load-on-startup>

</servlet>

还有映射配置

<servlet-mapping>

<servlet-name>XFireServlet</servlet-name>

<url-pattern>/services/*</url-pattern>

</servlet-mapping>

其中的<url-pattern>/services/*</url-pattern>表示WebService类要放到services目录下面,或者是说services目录下的东西都将作为WebService来处理,所以这个要注意跟struts下的东西分开来。如果需要把WebService类放到多个目录下面管理,则可以继续添加映射配置,如

<servlet-mapping>

<servlet-name>XFireServlet</servlet-name>

<url-pattern>/service/servlet/*</url-pattern>

</servlet-mapping>

4、 在services目录下增加一个接口类TestServiceDao,

@WebService

publicinterfaceTestServiceDao{

//sayHello方法声明了Web服务对外暴露的接口

//@return

public String sayHello(String s);

注意:上面的“@WebService”注解标识是为了给applicationContext.xml配置文件里使用Jsr181方法的,如果不用Jsr181,可以去掉。

5、 在services目录下增加一个接口实现类TestServiceDaoImpl,

@WebService(serviceName="testWebService",endpointInterface="services.TestServiceDao")

publicclassTestServiceDaoImpl implementsTestServiceDao {

public String sayHello(String ss) {

// TODO Auto-generatedmethod stub

String str= "你输入的字符串是:"+ss;

System.out.println(str);

return str;

}

注意:上面的注解是为了给applicationContext.xml配置文件里使用Jsr181方法的,@WebService(serviceName="testWebService",endpointInterface="services.TestServiceDao"),其中serviceName表示WebService的注册名字,是暴露给第三方使用的名字,如果为空,则默认为接口类的名字,endpointInterface表示该WebService要实现的接口类全名。如果不使用Jsr181方法配置,可以去掉。

6、 配置applicationContext.xml中的<bean>,有两种方法:

第一种方法,用Jsr181方法,这种方法要求接口和实现类都必须有@WebService注解标识,另外这种方法好像在启动tomcat时加载时间较长:

<!--xfire和spring集成-->

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

<!-- 获得applicationContext中所有bean的JSR181 annotation -->

<bean id="webAnnotations"

class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations"/>

<bean id="jsr181HandlerMapping"

class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">

<property name="xfire" ref="xfire"/>

<property name="webAnnotations" ref="webAnnotations" />

</bean>

上面的是固定不变的,下面是每个WebService实现类都要增加的:

<!-- 要发布成web服务的bean -->

<bean id="test1" class="services.TestServiceDaoImpl"/>

第二种方法,普通方法:

<!--xfire和spring集成-->

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

上面的是固定不变的,下面是每个WebService实现类都要增加的:

<!-- 要发布成web服务的bean -->

<bean id="aaa" class="services.TestServiceDao"/>

<bean name="bbb" class="org.codehaus.xfire.spring.ServiceBean">

<property name="serviceBean" ref="aaa"/>

<property name="serviceClass"value="services.TestServiceDaoImpl "/>

</bean>

这种方法发布的WebService,其向外暴露的名字是接口类的名字TestServiceDao,不是bean的id号。

完毕,如果想知道有哪些WebService接口可以调用,启动tomcat后,在IE地址栏输入http://localhost:8080/工程名/services即可看到

摘自 huangjl2000w的专栏

SSH与Webservice整合记录的更多相关文章

  1. CXF WebService整合SpringMVC的maven项目

    首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html   http://blog.csdn.net/hu_shengyang/article/de ...

  2. Maven SSH三大框架整合的加载流程

    <Maven精品教程视频\day02视频\03ssh配置文件加载过程.avi;> 此课程中讲 SSH三大框架整合的加载流程,还可以,初步接触的朋友可以听一听. < \day02视频\ ...

  3. SSH小项目整合的简单记录

    第一步.导入sprint4.struts2和hibernate4的jar包 struts2的jar包 commons-fileupload-1.3.3.jar commons-io-2.5.jar c ...

  4. activiti和SSH项目做整合

    最近因公司的业务需求,需要使用工作流来做我们业务中的流程审批工作,so 就安排我做了这个工作,发现整合的时候有一些问题,及时的记录下来分享给大家. 介绍: 一.如果你的web项目只是单纯的web项目那 ...

  5. android openmax hardware decoder 整合记录

    欢迎访问我的blog:http://blog.thinkinside.me 关于android中openmax中hardware decoder的调用中,整合过程比较简单.主要是对OMXCodec的封 ...

  6. 使用Lucene.net提升网站搜索速度整合记录

    1.随着网站数据量达到500万条的时候,发现SQL数据库如果使用LIKE语句来查询,总是占用CPU很忙,不管怎么优化,速度还是上不来; 2.经过网上收集资料,HUBBLE.net目前虽然做得不错,但需 ...

  7. ssh免密码登录记录

    做mha.hadoop安装过程中都要用ssh免密码登陆,查过一些资料,踩过很多坑,下面用简单记录一下 首先要安装ssh linux : centOS 6.5 yum -y install *ssh* ...

  8. CXF WebService整合Spring

    转自http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spr ...

  9. SSH框架完全整合

    大三学期渐末,事情也挺多的,上周就开始着手整合SSH框架,到现在才真正的完成,过程中碰到了许多小问题(小问题大折腾,哭脸.jpg).本着善始善终的原则,最终把它给完成了. 本篇文章就在: win7 6 ...

随机推荐

  1. 用word制作电子书最简捷模式 支持epub和mobi目录

    因为制作一本OCR的电子书,转到word编辑排版后,用calibre转成mobi发现没有目录,在网上查了资料研究了一下,终于解决了目录问题,根本不用将word文档转换为什么htm或txt,尤其是转换t ...

  2. MySQL 使用笔记(一) 关联

    2016-12-16 一.当前未掌握总结: 目前MySQL中不会的内容: 1.临时表(变量表) 2.存储过程 3.游标 4.函数 二.关联 内联.左关联.右关联.外联 (一).标准sql语句中的关联及 ...

  3. [PHP] - PDO事务操作

    PHP使用PDO事务操作数据库. 参考文章: http://php.ncong.com/mysql/pdo/pdo_shiwu.html 上代码: <!doctype html> < ...

  4. owin,webapi中将文件写入到response stream中

    首先在controller项目中添加一个类: using System; using System.Collections.Generic; using System.IO; using System ...

  5. VR软件定制外包团队:国内设备开发公司已超90家

    昨日是UNITE 2015 BEIJING大会的第二天,相比于新手训练营和VR Day活动,昨天的大会更加注重分享和展示.Unity 创始人David Helgason在也大会上进行了Unity 5 ...

  6. Intellij IDEA +MAVEN+Jetty实现Spring整合Mybatis

    1 pom.xml(这里出现transaction错误,是版本的问题) <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  7. Java 和C/C++的“语法”上的差异!

    额其实认为语言语法之间是没有可比性的! 但是因为额曾经学过C/C++,而今又学Java,有赵本山说的话:“知识都学杂了!”,所以我个人总结一下,望提醒自己! Java C++ double 要用%f: ...

  8. error: L6235E: More than one section matches selector - cannot all be FIRST/LAST

    解决措施http://blog.csdn.net/chenbang110/article/details/7586244

  9. java和h5 canvas德州扑克开发中(二)

    德州扑克网页源码在github上分享 https://github.com/lxr1907/pokers 感兴趣的可以上去看下. 1.通讯使用websocket,主要在message.js中. 2.用 ...

  10. 如何用iframe在网页中插入另一个网页的一部分内容,做成页中页

    <html><head></head><body><h1>这是一段引用的内容!!!</h1><div style=&quo ...