WebserService-JDK方式-总结

一、首先介绍一个简单的WebService的开发

1.  新建一个java工程

2.  服务端代码如下:(图片显示的是代码和目录结构,可以跳过哈......)



package com.summary;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
 * WebService服务端:AAAAA
 */
@WebService // 声明这是一个webservice类
public class AAAAA {
    @WebMethod // 声明这是一个webservice方法
    public int squrad(int x){
        return x * x;
    }
    public static void main(String[] args) {
        // 发布接口
        Endpoint.publish("http://localhost:8080/webservice_server", new AAAAA());
    }
}

3.  服务端代码编写好之后直接运行。(运行之后不要关闭,下面的步骤需要服务端处于运行状态)

4.  打开浏览器(输入自己发布的接口,后面跟上“?wsdl”)

http://localhost:8080/webservice_server?wsdl

如果浏览器显示出类似xml的文件,则正确

如果报错,则以上的步骤中有错,嘿嘿,,,重新来过吧,,,


5.  如果第4步没有问题,现在打开dos窗口

切换到c盘根目录(什么目录口可以,没有要求。我切换到c盘根目录是为了方便找到,嘿嘿,我很懒)

输入以下:

wsimport  -keep  -p  com.summary  http://localhost:8080/webservice_server?wsdl

如图,即为成功

-keep:是保留源码的意思

-p:是存储路径

6.  现在打开c盘的com.summary 目录,可以看到


看到就好,在后面的客户端中需要使用....

7.  现在重新创建一个java工程(随意起一个,不重要,嘿嘿..... 要想看一下直观的效果,看第2步的目录结构)

8.  将第6步中的.java代码全部放到新的工程中

9.  然后新建一个类(BBBBB)

10.  客户端代码如下:

package com.summary;
/**
 * WebService客户端 :BBBBB
 */
public class BBBBB {
    public static void main(String[] args) {
        // 思路: 观察生成的类,AAAAAService中有一个方法返回AAAAA,即可 AAAAA.squrad()       
        AAAAA aaaaa = new AAAAAService().getAAAAAPort();       
        System.out.println(aaaaa.squrad(3));       
    }
}


11.  现在直接运行客户端的程序就好了......


webService应用于实际工作中

二.  其次,我们看Spring和WebService的整合

1.  在原有的项目的Spring配置文件中,引入一个Spring与WebService整合的bean文件

<!-- Spring和WebService整合:对外提供一个简单的WebService出 口 -->

<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
    <property name="baseAddress" value="http://localhost:8080/ws" />
</bean>



2.  在原有的项目中新建一个文件夹(即功能模块,不是必须的,为了让目录结构更清晰......)

3.编写服务端的代码,如下

/**
 * WebService服务端
 */
@WebService
@Component
public class UserService {   
    @Autowired // 注入接口
    private IUserService userService;   
    // 对外提供的方法:获取cms系统中的用户信息
    public String queryUser(String id, String name) {
        UserCond cond = new UserCond();
        // 判断参数.拼接条件
        if (id != null && id != "") {
            cond.setId_c(id);
        }
        if (name != null && name != "") {
            cond.setName_c(name);
        }
        // 查询
        List<User> userList = userService.queryAllObj(cond);
        // 拼接xml格式,(也可以拼接其他格式的数据)
        StringBuilder xml = new StringBuilder();
        xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
        xml.append("<users>\r\n");
        for (User user : userList) {
            xml.append("\t<user>\r\n");
            xml.append("\t\t<id>" + user.getId() + "</id>\r\n");
            xml.append("\t\t<name>" + user.getName() + "</name>\r\n");
            xml.append("\t\t<age>" + user.getDept_id() + "</age>\r\n");
            xml.append("\t</user>\r\n");
        }
        xml.append("</users>\r\n");       
        return xml.toString();
    }
}



3.  按照你项目的启动方式启动就可以了

(写第2步,主要就是给大家看一下,里面没有了@WebMethod注释,也没有了main(),对外提供的端口,被移到了Spring的配置文件中了)

4.  接下来就按照最上面的(java工程)的第4步往后面走就可以了.......嘿嘿


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值