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

为EJB3.0+JBoss开发的WebService更改发布IP地址

发布时间:2020-12-16 22:54:19 所属栏目:安全 来源:网络整理
导读:之前用EJB3.0结合JBoss开发Web服务作为某个课程的课程设计,Web服务开发出来后给在本机上的一个系统调用,一切正常。可到了别的机器上,别说调用了,连服务端的WSDL都查找不了。 后来花了很长一段时间从网上找了很多资料,发现问题的原因在于发布的WebServic

之前用EJB3.0结合JBoss开发Web服务作为某个课程的课程设计,Web服务开发出来后给在本机上的一个系统调用,一切正常。可到了别的机器上,别说调用了,连服务端的WSDL都查找不了。

后来花了很长一段时间从网上找了很多资料,发现问题的原因在于发布的WebService的WSDL中的<service><port></port></service>内的<soap:address>标签的location属性对应的IP被默认设置成“127.0.0.1(本机)”(见下图)。也就是说,Client端要调用该Web服务的时候,会被认为服务是在他自己的机器上(事实上该Web服务是在我的Server里头),显然Client端是根本没有该服务的。

原因是找到了,但网上提供的解决方法千奇百怪,当中很多文章都说要修改JBoss中的某个配置文件之类的,但按着它们的方法去做发现还是解决不了这个问题。又过了很长一段时间的今天,在某篇文章中看到一个关于JBoss的启动参数,发现原来JBoss在启动时可以定义不同的IP地址,即在命令控制台下进入JBoss_HOME/Bin/目录后键入命令run -b xxx.xxx.xxx.xxx,便可设置JBoss的IP(不跟任何参数的话默认是localhost或127.0.0.1)。例如,直接执行run的话,访问JBoss的控制台应该在地址栏中输入这个地址http://localhost:8080/,但如果我执行

run -b 192.168.1.104的话,访问JBoss的控制台就应该在地址栏中输入http://192.168.1.104:8080/。

由此受到启发,如果我以本机在某局域网中的IP地址启动JBoss,是否可以同时将JBoss发布的Web服务的发布地址也修改过来呢?于是立即动手试了一下,天呀,终于成功了,Web服务的WSDL的location终于改回来了(见下图)!


PS:

1.为了测试方便,我是用MyEclipse直接启动JBoss的。在MyEclipse中可按下面方法设置JBoss的启动参数:

Windows-->Preferences-->MyEclipse-->Servers-->JBoss-->选你自己的版本-->在Optional program arguments中输入启动参数-b 192.168.1.104-->重启MyEclipse(这步十分重要!)

这样设置之后,只要你用MyEclipse启动JBoss,JBoss的IP就会变成192.168.1.104了!

2.在局域网中想让别人能调用你写的Web服务,请将你机器上的防火墙关掉。(不过话说回来,Web服务是支持穿透防火墙的,之前的开启防火墙的访问失败应该还是IP地址的设置问题,具体没有验证过,有空一定要试验一下。)

(编辑:李大同)

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

    推荐文章
      热点阅读