zoukankan      html  css  js  c++  java
  • SSH与Webservice整合记录

    一、首先搭好SSH框架:

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

    WEB-INFweb.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-INFweb.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包到WebRootWEB-INFlib下面:数据库包如classes12-9i.zip、msbase.jar、mssqlserver.jar、msutil.jar,Spring Web包(如果搭spring框架时选了spring web包应该就有了)如spring-web.jar、spring-webmvc.jar。

    3、 修改WEB-INFweb.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的专栏

  • 相关阅读:
    iOS开发进阶
    iOS开发UI篇—Quartz2D使用(绘图路径)
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—Quartz2D简单使用(三)
    iOS开发从入门到精通
    win7访问win10需要用户名密码
    win10启用guest来宾账户的教程
    2021 年终总结
    vue elementui 树形
    js递归生成树形结构
  • 原文地址:https://www.cnblogs.com/ljq-0722/p/4073750.html
Copyright © 2011-2022 走看看