webservice服务发布地址localhost或者127.0.0.1外网访问不到msdl,本机却可以访问

情况描述

      在学习webservice过程中,将一个简单的webservice程序发布到我自己的服务器上,在我用自己电脑访问服务器上的wsdl是,发现访问不了.
下面是程序代码(这里体现了,两种发布服务的方法.)
注意:设置发布地址哪一行(问题描述在注释里)

//方法1
    public void giveService() {
        //创建一个发布服务的工厂
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        //设置发布地址
        /*
        	这里面目前写的是localhost,当然写127.0.0.1也是一样的,
        	这种写法在本机里是可以运行的,在本机想访问wsdl直接访问
        	直接设置的地址即可.
        	但是将他发布到服务器上的用其他机器访问时则会访问不到,
        	这个我们需要将http://localhost:8210/MyGod中的地址
        	localhost改为服务器的
        	注意本机ip不等于127.0.0.1
        */
        factory.setAddress("http://localhost:8210/MyGod");
        //设置服务类
        factory.setServiceBean(new WebServiceGiveImpl());
        //发布服务
        Server server = factory.create();
        //开始服务
        server.start();
        //日志提示
        Logger logger = LoggerFactory.getLogger(PublishingService.class);
        logger.info("服务发布成功");
    }

    //方法2
    public void giveServiceTwo() {
        //设置发布地址
        String address = "http://localhost:8210/MyGod";
        //发布服务
        Endpoint.publish(address, new WebServiceGiveImpl());
        //日志提示
        Logger logger = LoggerFactory.getLogger(PublishingService.class);
        logger.info("服务发布");
    }

问题分析

      这里面目前写的是localhost,当然写127.0.0.1也是一样的,
这种写法在本机里是可以运行的,在本机想访问wsdl直接访问
直接设置的地址即可.
但是将他发布到服务器上的用其他机器访问时则会访问不到,
这个我们需要将http://localhost:8210/MyGod中的地址
localhost改为服务器的
注意本机ip不等于127.0.0.1

//设置发布地址
        /*
        	这里面目前写的是localhost,当然写127.0.0.1也是一样的,
        	这种写法在本机里是可以运行的,在本机想访问wsdl直接访问
        	直接设置的地址即可.
        	但是将他发布到服务器上的用其他机器访问时则会访问不到,
        	这个我们需要将http://localhost:8210/MyGod中的地址
        	localhost改为服务器的
        	注意本机ip不等于127.0.0.1
        */
        factory.setAddress("http://localhost:8210/MyGod");

问题总结和解决

       我们需要修改地址localhost为服务器的地址
       另外说明:如果是用的是云服务器的话要写内网ip,不然报错.
内网ip和外网ip的区别:(借鉴网上答案并不全面)
       外网IP是全世界唯一的IP地址,仅分配给一个网络设备。而内网IP是由路由器分配给每一部内部使用的IP地址,而内网的所有用户都是通过同一个外网IP地址进行上网的,而内网的IP地址每个人的都不一样,Internet上的用户也无法直接访问到内网用户。简单来说呢,外网IP就是标示了您在整个互联网上的地址,就相当于小区的地址,而内网IP呢,就是标识着您在局域网里面的地址,也就是小区内的几栋几楼几号房子。
在这里插入图片描述
若有错误恳请指出,虚心学习,积极沟通.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值