如何获取不到项目服务器地址,关于如何获取项目所部署的本机IP和端口的问题...

关于如何获取项目所部署的本机IP和端口的问题

今天在写一个需求的时候碰到一个不常见的问题,在没有继承或者实现服务器提供的接口或者实现类的时候,比如说部署在tomacat上,某个类不去继承servelt接口或者继承Httpservelet抽象类的时候去或者项目所处的IP地址以及

项目所部署的端口号。

我们先说一下我们都知道的情况,继承或者实现上面两者的情况下如何获取

方法一:

req.getLocalAddr(); 获取本机的IP地址(客户端)

req.getLocalPort(); 获取项目部署的端口号(客户端)

那么在没有继承上面两者的情况下,通过何种方式获取呢?

方法二:

先上代码再解释:

获取本机的IP地址的代码

1 public staticInetAddress getCurrentIp() {2 try{3 //得到当前机器上在局域网内所有的网络接口

4 Enumeration networkInterfaces =NetworkInterface.getNetworkInterfaces();5 //遍历所有的网络接口

6 while(networkInterfaces.hasMoreElements()) {7 NetworkInterface ni =(NetworkInterface) networkInterfaces.nextElement();8 //获取当前接口下绑定到该网卡的所有的 IP地址。

9 Enumeration nias =ni.getInetAddresses();10 while(nias.hasMoreElements()) {11 InetAddress ia =(InetAddress) nias.nextElement();12 //获取网卡接口地址(ip)

13 String hostAddress =ia.getHostAddress();14 System.out.println(hostAddress);15 //只需要ipv4地址 排除ipv6地址和127.0.0.1 取ipv4地址

16 if (!ia.isLinkLocalAddress() && !ia.isLoopbackAddress() && ia instanceofInet4Address) {17 returnia;18 }19 }20 }21 } catch(SocketException e) {22 }

23 return null;24 }

获取服务器的端口号

1 public static String getLocalPort() throwsMalformedObjectNameException {2 //获取所有注册在jvm中的服务器

3 MBeanServer beanServer =ManagementFactory.getPlatformMBeanServer();4 Set objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),5 Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));6 System.out.println(objectNames);7 String port = objectNames.iterator().next().getKeyProperty("port");8 returnport;9 }

上面用到的包,都是java.net.*下的包,是jdk 中自带的包,已经提供在环境中,不需要额外的引入其他的包, Java 在 JDK1.4 之后引入了网络操作的相关包,所以需要JDK1.4或者1.4以上才行。

由于我用的Tomact服务器开发的,暂时没有测其他的服务器是否也同样可以,如果以后用到其他服务器再补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 部署Spring Boot Vue不分离项目的步骤如下: 1. 首先,需要确保服务器上已经安装了Java Development Kit(JDK)和Node.js。 2. 在服务器上创建一个新的文件夹,用于存放项目文件。 3. 使用Git命令克隆Spring Boot Vue项目的仓库到服务器上的文件夹中。 4. 进入项目文件夹,在命令行中运行`mvn clean install`命令,以编译和打包Spring Boot项目。 5. 在命令行中运行`npm install`命令,以安装Vue项目所需的依赖。 6. 使用`npm run build`命令,编译和打包Vue项目。这将生成一个dist文件夹,其中包含了打包后的静态文件。 7. 将Spring Boot项目的打包后的jar文件和Vue项目的dist文件夹一起复制到服务器上的某个目录中。 8. 在服务器上运行`java -jar <jar文件名>`命令,启动Spring Boot项目。 9. 在浏览器中输入服务器IP地址端口号,即可访问部署好的Spring Boot Vue项目。 总结:部署Spring Boot Vue不分离项目需要先编译和打包Spring Boot项目,然后安装Vue项目的依赖并编译打包Vue项目,最后将打包后的Spring Boot项目和Vue项目一起部署服务器上。 ### 回答2: 要部署一个不分离的Spring Boot Vue项目,首先需要安装并配置好Linux服务器的环境。 1. 安装Java开发环境:使用apt-get或者yum命令安装Java JDK,并配置好JAVA_HOME环境变量。 2. 安装Maven构建工具:使用apt-get或者yum命令安装Maven,并配置好MAVEN_HOME环境变量。 3. 安装Node.js和npm:使用apt-get或者yum命令安装Node.js和npm。 4. 安装Nginx: 使用apt-get或者yum命令安装Nginx,并配置好Nginx的监听端口和反向代理。 5. 将项目代码拷贝到服务器中:可以使用scp命令将项目打包后的jar包和前端代码上传至服务器。 6. 安装并配置数据库:根据项目需要,安装相应的数据库,并创建数据库和用户。 7. 编译和打包项目:在服务器上使用Maven命令编译并打包项目。在Vue项目中,可以使用npm命令安装依赖并执行打包。 8. 配置Spring Boot应用程序:根据项目需要,修改Spring Boot配置文件,配置数据库连接和其他相关属性。 9. 启动Spring Boot应用程序:使用java命令运行打包后的jar文件。 10. 配置Nginx反向代理: 修改Nginx配置文件,配置反向代理规则,将请求转发至Spring Boot应用程序的端口。 11. 配置Nginx静态文件服务:将Vue项目打包后的静态文件放置在Nginx的静态文件目录中,并配置Nginx的静态文件服务。 12. 启动Nginx服务:使用systemctl命令启动Nginx服务。 通过以上步骤,就可以在Linux服务器上成功部署一个不分离的Spring Boot Vue项目。在部署过程中,需要根据具体情况进行相应的配置和调整。 ### 回答3: 要部署一个不分离的Spring Boot Vue项目,可以按照以下步骤进行: 1. 首先,需要在Linux服务器上安装必要的软件和环境。比如,安装Java运行环境(JRE)和Node.js环境。 2. 下载源代码并解压缩。如果使用git进行版本控制,可以使用`git clone`命令来获取源码,然后在合适的位置进行解压。 3. 编译和构建项目。首先,在命令行中进入后端项目的根目录,执行`./gradlew build`命令来编译和构建Spring Boot项目。然后,在前端项目的根目录执行`npm install`命令来安装所需的依赖项。 4. 配置后端项目。在部署过程中,需要修改Spring Boot的配置文件,比如`application.properties`或`application.yml`,设定数据库连接等相关信息。 5. 部署前端项目。执行`npm run build`命令来构建前端项目。这将生成一个静态文件目录,可以将其部署到任意的Web服务器上。 6. 启动后端项目。使用`java -jar`命令来启动Spring Boot项目,例如`java -jar your-project-name.jar`。确保后端项目已成功运行并监听所配置的端口。 7. 启动前端项目。根据你使用的Web服务器,将静态文件目录配置为Web服务器的根目录,启动Web服务器。访问Web服务器地址端口,可以查看到部署的前端项目。 通过以上步骤,就可以在Linux上成功部署一个不分离的Spring Boot Vue项目。请注意,这只是一个简单的部署过程,具体的步骤可能会因项目的特殊要求而有所不同。因此,在实际部署过程中,根据项目的需要进行相应的调整和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值