Ssh项目添加WebService功能的步骤

 有需要学习例子,到这里下载地址

http://download.csdn.net/detail/wqsmd1/4470343

第一步:改造Web.xml

<servlet>

        <servlet-name>CXFServlet</servlet-name>

    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>CXFServlet</servlet-name>

        <url-pattern>/webServices/*</url-pattern>

    </servlet-mapping>

 

重点: 

配置webService对应的Jar包

    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

   webService访问的地址格式

        <url-pattern>/webServices/*</url-pattern>

第二步:添加Sping关联的配置头文件

<beansxmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jaxws="http://cxf.apache.org/jaxws"

    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd

    http://cxf.apache.org/jaxwshttp://cxf.apache.org/schemas/jaxws.xsd">

 

 

重点:xmlns:jaxws="http://cxf.apache.org/jaxws

 

http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd

 

第三步:添加Sping关联的配置的示范代码

<beanid="IsshWs" class="com.test.wsservice.impl.SshWsImpl">

        <propertyname="userServiceTarget" ref="userServiceTarget"></property>

    </bean>

 

    <jaxws:endpointimplementor="#IsshWs" address="/cxfssh.ws">

 

    </jaxws:endpoint>

 

package com.test.wsservice;

import java.util.List;

import javax.jws.WebService;

import com.test.bean.EmpLevel;

import com.test.bean.Users;

 

@WebService

public interface IsshWs {

 

    // 定一个Web Service的操作。

    voidaddThread(String fristName, String name, int age,EmpLevel emplv);

 

    voidaddUserList(List<Users> list);

   

    voidaddUserbyte(byte[] by);

   

    voidaddUser(Users users);

}

 

package com.test.wsservice.impl;

 

import java.util.ArrayList;

import java.util.List;

 

import javax.jws.WebService;

 

import com.test.bean.EmpLevel;

import com.test.bean.Users;

import com.test.service.UserService;

import com.test.util.ObjectConvert;

import com.test.wsservice.IsshWs;

 

@WebService(endpointInterface = "com.test.wsservice.IsshWs",serviceName = "IsshWs")

public class SshWsImpl implements IsshWs {

 

    privateUserService userServiceTarget;

 

    @Override

    publicvoid addThread(String fristName, String name, int age, EmpLevel emplv) {

        //应该通过调用业务逻辑组件的方法来实现该方法。

 

        Usersuser = new Users();

        user.setFirstname(fristName);

        user.setLastname(name);

        user.setAge(age);

        user.setEmpLevel(emplv);

        userServiceTarget.save(user);

    }

 

    publicvoid setUserServiceTarget(UserService userServiceTarget) {

        this.userServiceTarget= userServiceTarget;

    }

 

    publicUserService getUserServiceTarget() {

        returnuserServiceTarget;

    }

 

    @Override

    publicvoid addUserList(List<Users> list) {

       

        List<Users>userlist=new ArrayList<Users>();

        userlist=list;

        userServiceTarget.saveUserList(userlist);

 

    }

 

    @Override

    publicvoid addUserbyte(byte[] by) {

 

        List<Users>list = (List<Users>) ObjectConvert.ByteToObject(by);

        userServiceTarget.saveUserList(list);

 

    }

 

    @Override

    publicvoid addUser(Users users) {

        userServiceTarget.save(users);

 

    }

 

}

 

第四步:Struts里面放行WS

 

struts.xml:

 

<action name="webServices/*.ws">

            <result>webServices/{1}.ws</result>

</action>

 

 

与web.xml里url相对应

 

第五步:测试WS地址,并生成客户端代码

http://127.0.0.1:8080/testssh/webServices/cxfssh.ws?wsdl

 

备注:

1. webServices在web.xml里url相对应,并且struts.xml放行

2. cxfssh.ws在applicationContext.xml里配置的,并且与struts.xml相对应

 

 

生成客户端代码:

1. 进入客户端源文件夹

2. 运行以下代码

Wsdl2javahttp://127.0.0.1:8080/testssh/webServices/cxfssh.ws?wsdl

测试类:

package com.test.main;

 

import java.util.ArrayList;

import java.util.List;

 

import com.test.util.ObjectConvert;

import com.test.wsservice.EmpLevel;

import com.test.wsservice.Users;

import com.test.wsservice.impl.IsshWs;

 

 

public class TestMain {

 

    /**

     * @param args

     */

    public staticvoid main(String[] args) {

       

        //用实现类new一个WS的factory

        IsshWsfactory = new IsshWs();

       

        //使用接口来取得代理

        com.test.wsservice.IsshWssw=factory.getSshWsImplPort();

       

//      sw.addThread("chen","youyi", 29);

       

        List<Users>list=new ArrayList();

       

        EmpLevelemplv1=new EmpLevel();

        emplv1.setId((short)1);

        EmpLevelemplv2=new EmpLevel();

        emplv1.setId((short)2);

       

       

        Usersu1=new Users();

        u1.setFirstname("sfgs1");

        u1.setLastname("sdasdf1");

        u1.setAge(12);

        u1.setEmpLevel(emplv1);

 

        sw.addUser(u1);

       

        Users u2=newUsers();

        u2.setFirstname("sfgs2");

        u2.setLastname("sdasdf2");

        u2.setAge(12);

        u2.setEmpLevel(emplv2);

        list.add(u1);

        list.add(u2);

//      sw.addUserList(list);

       

//      byte[]by=ObjectConvert.ObjectToByte(list);

//      sw.addUserbyte(by);

       

       

    }

 

}

 

几张CXF关联流程图整理-------------------------------------à

WebService改造流程图:

 

 

WebService栏截器流程图:

WebService流程图:

 

WebService自动生成代码:

 

 

 

 

应用分析图解:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值