虚拟机NAT下不需要为中间件单独配置内网IP

应用服务中间件跑在linux上,从vmware-workstation里一直访问不了,中间件一直报错:

2010-02-03 12:00:01,167  INFO (Http11Protocol.java:148) - Initializing Coyote HTTP/1.1 on http-127.0.0.1-8888
2010-02-03 12:00:01,170 ERROR (Http11Protocol.java:144) - Error initializing endpoint
java.net.BindException: Cannot assign requested address:8888
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:142)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:928)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:764)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:509)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at nc.bs.tomcat.startup.Bootstrap.load(Bootstrap.java:178)
        at nc.bs.tomcat.startup.Bootstrap.main(Bootstrap.java:314)
        at nc.bs.tomcat.startup.BootStrapTomcatService.run(BootStrapTomcatService.java:49)
        at nc.bs.tomcat.startup.BootStrapTomcatService.startServer(BootStrapTomcatService.java:35)
        at nc.bs.mw.fm.ServiceManager.startBaseService(ServiceManager.java:367)
        at nc.bs.mw.fm.ServiceManager.run(ServiceManager.java:236)
开始以为是网络环境不对,但后来从中间件配置中去掉NAT内网的IP(172.16.253.2)后,好了,原来其实只要配置一个127.0.0.1就足够了,虚拟机里就能识别了。

 

     后记:以上是以前二次开发时候的事,当时用友的NC中间件放到宿主机linux下,开发工具跑在vmware的windows虚拟机里,虚拟机的网络设置用的nat。因为中间件一般需要配置2个IP,一个是本机地址127,一个是局域网/广域网地址,所以一开始我误以为nat网络环境下的ip和127.0.0.1不一样,需要配置两个地址,但实际上是指向同一个地址,所以才出了上面的端口冲突 的异常提示。

     同样类似的问题出现在最近用金蝶K3,我在vmware虚拟机里装了一个k3的客户端,网络环境又是nat,安装完了以后进行“远程组件配置”,连接局域网里的另一个服务器,总是报错,思前想后,把网络环境改成了桥接方式,就好了。

      以后再用虚拟机做erp应用的时候可得小心nat的网络模式了。。:)

你可能感兴趣的:(java,apache,tomcat,虚拟机,中间件)