加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

原生WebService

发布时间:2020-12-16 23:54:36 所属栏目:安全 来源:网络整理
导读:我使用的是jdk6自带的webservice,使用注解。 编写一个开放的借口并实现: public interface UserService { public String saveUser(String username,String password);} 实现类: import javax.jws.WebService;import javax.jws.soap.SOAPBinding;@WebServi

我使用的是jdk6自带的webservice,使用注解。

编写一个开放的借口并实现:

public interface UserService {
    public String saveUser(String username,String password);
}

实现类:

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name = "UserService",serviceName = "UserService",targetNamespace = "http://cas.webservice.user/client")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class UserServiceImpl implements UserService{
;
                                                                                                                                 
    public String saveUser(String username,String password) {
        System.out.println(username+" : "+password);
         return username + " : " + password;
                                                                                                                                      
    }
}

@是注解,必须要有,下面会用到注解里面的东西。

webservice的发布:

public class TestMain {
    public static void main(String[] args) {   
        Endpoint.publish("http://127.0.0.1:9527/UserService",new UserServiceImpl());
    }
}

其中9527端口后面的UserService是注释中serviceName的内容。

然后,运行一下main方法。

在你的桌面开始位置输入cmd命令,输入如下内容:

wsimport -keep http://127.0.0.1:9527/UserService?wsdl

会在C:UsersJhon(计算机的用户名)userwebservicecasclient下生成“.class和.java”的文件。

重新建立一个工程,把cas下的client文件夹复制到新工程的src下,新建一个测试类,代码如下:

public class TestMain {
    public static void main(String[] args) {
        UserService_Service uss=new UserService_Service();
        UserService user=uss.getUserServicePort();
        System.out.println(user.saveUser("你好","yes i do"));
        }
}

会在控制台输出:你好 yes i do

注意的地方:
一是在发布的类(userServiceImpl)中假如带有接口属性,并且有其getter/setter,那么发布会失败。 二是发布的ip假如是127.0.0.1的话localhost是不能访问的,是多少就是多少,不过实际项目也不会这样的。 三是有的客户端调用的时候也会报错,比如Provider com.sun.xml.ws.spi.ProviderImpl not found这个异常,我跟踪代码进去,发觉报错的那个jdk版本的Provider和我成功的jdk版本是不一样的,在网上搜无答案,直说缺包,我感觉是个小bug。其他的没什么问题。 四是因为这里没用任何webservice框架,没有把它嵌入tomcat(假如你需要在tomcat环境中),所以端口另开,不能是8080。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读