精华内容
下载资源
问答
  • 最近遇到个需求,需要在代码中获取当前服务的内网ip和端口,废话不多说,直接上代码(都是Linux服务器,windows的没试过,可能会有所区别) //获取内网ip public static String getLocalIp() { try { for ...

     最近遇到个需求,需要在代码中获取当前服务的内网ip和端口,废话不多说,直接上代码(都是Linux服务器,windows的没试过,可能会有所区别)

    //获取内网ip
    public static String getLocalIp() {
            try {
                for (Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); interfaces
                        .hasMoreElements();) {
                    NetworkInterface networkInterface = interfaces.nextElement();
                    if (networkInterface.isLoopback() || networkInterface.isVirtual() || !networkInterface.isUp()) {
                        continue;
                    }
                    Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                    if (addresses.hasMoreElements()) {
                        return addresses.nextElement().getHostAddress();
                    }
                }
            }
            catch (SocketException e) {
                LoggerUtil.log(Level.INFO, "获取ip出现异常:{}", e.getMessage());
            }
            return null;
        }
    
        // 获取端口
        public static String getLocalPort() {
            try {
                MBeanServer server;
                if (MBeanServerFactory.findMBeanServer(null).size() > 0) {
                    server = MBeanServerFactory.findMBeanServer(null).get(0);
                } else {
                    return "";
                }
                Set<ObjectName> names = server.queryNames(new ObjectName("Catalina:type=Connector,*"),
                        Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
    
                Iterator<ObjectName> iterator = names.iterator();
                if (iterator.hasNext()) {
                    ObjectName name = iterator.next();
                    return server.getAttribute(name, "port").toString();
                }
            }
            catch (Exception e) {
                LoggerUtil.log(Level.INFO, "获取port出现异常:{}", e.getMessage());
            }
            return "";
        }

    如果本文对你有帮助的话,欢迎点赞、评论、收藏!

    展开全文
  • 此时 有一个全新的tomcat,未进行任何操作,建立一个web工程A,部署tomcat中,此时的tomcat的端口号为:8080(默认),现在有这样一个需求,编辑tomcat的目录conf文件夹里的service.xml文件,新增一个8000的端口号...
  • 上一篇说的将非Spring Boot项目注册到Eureka Server并提供服务也说到,配置文件里eureka.port必须要与本机tomcat端口号相同,但不同环境往往有不同的tomcat端口号,以往我使用不同环境的配置文件以确保eureka服务...

    上一篇说的将非Spring Boot项目注册到Eureka Server并提供服务也说到,配置文件里eureka.port必须要与本机tomcat端口号相同,但不同环境往往有不同的tomcat端口号,以往我使用不同环境的配置文件以确保eureka服务端口与tomcat一致。

    1.读tomcat配置文件

    这是最先想到的方法,通过classpath一层层找到conf下的server.xml拿端口号,因为路径基本不会变,所以也是一种方法,由于发现了更好的方法,此处并无代码…

    2.通过Jmx 的MBeanServer

    package com.kowalski.demo;
    
    import javax.management.MBeanServer;
    import javax.management.MalformedObjectNameException;
    import javax.management.ObjectName;
    import javax.management.Query;
    import java.lang.management.ManagementFactory;
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import java.util.Set;
    
    public class IPAddressKowalski{
        public static String getIpAddressAndPort() throws MalformedObjectNameException, NullPointerException,
                UnknownHostException {
            MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
            Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
                    Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
            String host = InetAddress.getLocalHost().getHostAddress();
            String port = objectNames.iterator().next().getKeyProperty("port");
            String ipadd = "http" + "://" + host + ":" + port;
            System.out.println(ipadd);
            return ipadd;
        }
    
        public static int getTomcatPort() throws MalformedObjectNameException, NullPointerException {
            MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
            Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
                    Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
            String port = objectNames.iterator().next().getKeyProperty("port");
    
            return Integer.valueOf(port);
        }
    }

    那么之前写的将非Boot项目注册到eureka server上怎么动态的拿tomcat端口号呢:

    在之前的MyInstanceConfig 中加入方法:

    /***
         *获取本机启动中tomcat端口号
         * @return
         */
        @Override
        public int getNonSecurePort(){
            int tomcatPort;
            try {
                MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
                Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
                        Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
    
                tomcatPort = Integer.valueOf(objectNames.iterator().next().getKeyProperty("port"));
            }catch (Exception e){
                return super.getNonSecurePort();
            }
            return tomcatPort;
        }

    这里的getNonSecurePort其实就是config.properties里面配置的eureka.port可以在PropertiesInstanceConfig的init方法中找到

    展开全文
  • 配置tomcat前,我们需要先配置java环境,安装eclipse。 首先安装jdk 安装jdk11教程 然后安装eclipse 网盘下载eclipse:eclipse下载链接 提取码:0qhn 双击打开 eclipse.exe 程序 找到 Window—>Preferences —...

    在配置tomcat前,我们需要先配置java环境,安装eclipse。
    首先安装jdk 安装jdk11教程
    然后安装eclipse
    网盘下载eclipse:eclipse下载链接
    提取码:0qhn

    双击打开 eclipse.exe 程序
    找到 Window—>Preferences
    在这里插入图片描述

    —>Server—>Runtime Environments
    点击Add
    在这里插入图片描述
    添加tomcat(安装的是哪个版本就选哪个版本!)
    在这里插入图片描述
    点击Browse 选择tomcat的安装路径,然后Finish—>Apply and Close
    在这里插入图片描述
    在这里插入图片描述
    点击,然后选择Tomcat v9.0 Server,最后Finish就OK了。在这里插入图片描述

    然后找到新建一个web项目
    File—>New—>Dynamic Web Project
    在这里插入图片描述

    给项目起个名字,其他默认,然后Finish。
    在这里插入图片描述

    然后在创建的项目里——>WebContent里新建一个jsp项目在这里插入图片描述

    并将三处的 “ISO-8859-1” 改成 “UTF-8”,并输入在这里插入图片描述

    右击 Run As 运行输出在这里插入图片描述

    将创建的项目添加到右边在这里插入图片描述

    如果出现这种情况,就是8080端口号被占用了,
    解决方案一:
    我们可以去修改端口号
    在这里插入图片描述

    找到刚才下载的tomcat文件,找到 server.xml 文件,打开编辑,找到如图所示位置在这里插入图片描述
    将端口号改成 8888,然后保存。
    在这里插入图片描述
    如图所示 双击打开,找到8080在这里插入图片描述

    将 8080端口号 改为刚才修改的端口号 8888,保存在这里插入图片描述

    然后再次运行,应该就OK了。在这里插入图片描述

    补充:
    解决方案二:
    如果不改默认端口号8080,那么我们可以怎么解决端口号被占用的问题呢?
    win+R 输入 cmd 回车
    在命令行窗口输入:netstat -ano|findstr 8080 回车在这里插入图片描述
    这里我们可以看到4220,就代表PID为4220这个程序占用了此端口号,那么我们可以在任务管理器里面找到此程序,然后 结束任务在这里插入图片描述

    展开全文
  • 可以通过修改 server.xml 文件配置信息来修改 Tomcat 服务器的端口号: &lt;Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort=&...

    Tomcat: 开源的 Servlet 容器.

    可以通过修改 server.xml 文件中的配置信息来修改 Tomcat 服务器的端口号:

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    把 port 的值改为其他的端口号即可.

    配置tomcat环境变量

    1. 为了可以在任意目录下启动 Tomcat 服务器

    把 D:\apache-tomcat-6.0.16\bin 添加到 path 下

    添加成功后, 若在任意目录下通过 startup 启动 Tomcat 服务器, 会有提示:

    The CATALINA_HOME environment variable is not defined correctly
    This environment variable is needed to run this program

    即: 要求设置 CATALINA_HOME 这个环境变量

    设置 CATALINA_HOME 环境变量:
    通过阅读 startup.bat 批处理文件, 可知 CATALINA_HOME 环境变量下有一个 bin 目录,
    而 bin 目录又有一个 catalina.bat 文件, 由此可知 CATALINA_HOME 指向的应该是 Tomcat 安装的根目录,于是把 Tomcat 的根目录设为 CATALINA_HOME 环境变量.

    此时即可以在 任意 目录下通过 startup.bat、shutdown.bat 启动、关闭 Tomcat 服务器.

    1. 继续阅读 startup.bat 文件, 发现启动 tomcat 服务器的是 catalina.bat 文件

    在命令行窗口直接输入 catalina, 提示如下:

      commands:
      debug             Start Catalina in a debugger
      debug -security   Debug Catalina with a security manager
      jpda start        Start Catalina under JPDA debugger
      run               Start Catalina in the current window
      run -security     Start in the current window with security manager
      start             Start Catalina in a separate window
      start -security   Start in a separate window with security manager
      stop              Stop Catalina
      version           What version of tomcat are you running?

    catalina 命令有如上的可选参数.

    run: 在 catalina 同一个命令行窗口下启动服务器.
    start: 开启一个新窗口启动服务器
    stop: 关闭服务器.

    第一个 WEB 应用程序

    1. 第一个 WEB 应用程序: 开发, 并部署到 Tomcat 服务器下运行

    1). 在 Eclipse 新建一个 Java Project
    2). 在 Java 项目下创建 WEB 开发的目录结构

    -WebContent
    -WEB-INF
    -classes (编译后的 class 文件必须放在该目录下.)
    -lib
    -web.xml (从 apache-tomcat-6.0.16\webapps\docs\WEB-INF 中复制过来,
    可以不做修改)
    html 页面
    JSP 页面
    图片..…

    3). 在 src 下新建一个 Person 类

    package com.atguigu.test;
    public class Person {
        public String getPersonInfo(){
            return "person info...";
        }
    }

    4). 手工的 Person 类对应的 class 文件(含包)复制到 classes 目录下

    可以通过修改默认的输出目录达到自动把编译好的 class 放到 classes 目录下:

    5). 在 WebContent 目录下新建一个 JSP 文件:

    <%@page import="com.atguigu.test.Person"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <% 
        Person person = new Person();
        System.out.print(person.getPersonInfo()); 
    %>

    6). 把 WebContent 目录复制到 Tomcat 的 webapps 目录下, 并改名为: helloworld

    7). 在浏览器的地址栏中输入: http://localhost:8080/helloworld/hello.jsp 即可
    看到命令行的打印信息

    8). 配置任意目录下的Web应用程序:
    在 conf 目录下依次创建 catalina\localhost 目录,然后在 localhost 目录下为 test
    这个Web应用程序建立 test.xml 文件,编辑这个文件输入以下内容

    <?xml version="1.0" encoding="UTF-8"?>
    <Context 
    docBase="E:\\Java\\Source\\atguigu\\java-1\\firstWebApp\\WebContent" 
    reloadable="true"/> 
    展开全文
  • 遇到一个单节点多实例部署的情况,且配置文件部署平台统一管理了,在这种情况下想到用端口号区分具体实例。搜了一圈发现都是一个版本且存在问题的源码,干脆自己搞了一个。废话不说了,直接上源码。 List&lt;...
  • Linux获取Tomcat端口号

    2012-05-12 16:40:42
    下面这段shell脚本可以找出Tomcat的进程ID,然后,通过一个循环kill掉所有的Tomcat进程.   #!/bin/sh #kill tomcat pid pidlist=`ps -ef|grep webServer | grep -v "grep"|awk '{print $2}'` #ps -u $...
  • tomcat端口号配置

    千次阅读 2018-07-29 14:38:12
    conf:存放的是Tomcat配置文件 lib:存放Tomcat服务器的jar包和依赖的jar包 logs:存放服务器运行的相关日志信息 temp:临时文件夹,比如存放文件上传时的临时文件 webapps:默认情况下存入项目的文件夹 work:JSP...
  • conf/server.xml 可以配置三个端口号, 如果使用多个tomcat 是需要配置这三个. &lt;Connector port="8080" protocol="HTTP/1.1" //端口号8080用于监听请求 conne...
  • 下面小编就为大家带来一篇完美解决在eclipse上部署Tomcat时出现8080等端口被占用的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Spring Boot程序获取tomcat启动端口

    万次阅读 2018-09-09 22:35:02
    有时我们需要Spring Boot程序的启动端口,例如我们在代码需要拼接改程序的监控检查URL,就会需要用到端口, 那么如何获取tomcat端口? 办法有很多,实现ApplicationListener接口,通过...
  • Linux下启动tomcat、配置Tomcat后台帐号、修改Tomcat端口 启动Tomcat之前,请确认已经配置好Java环境变量。还有记得关闭防火墙。否则不能正常访问Tomcat。 一、启动Tomcat 1、先找到Tomcat安装包 2、解压缩安装包...
  • tomcat修改端口号与eclipsetomcat保持一致 将本地tomcat与eclipse中tomcat配置信息保持一致:即将eclipsetomcat设置为托管模式 1. 添加项目 2. 查看server.xml文件中tomcat端口号 3. 第一次创建...
  • 不能修改tomcat端口号,只能直接去tomcat的目录该配置文件 (1)找到tomcat根目录下的conf,有个server.xml (2)使用 EdiPlus或nopad++打开 (3)直接使用【Connector executor="tomcatThreadPool" port=...
  • Spring Boot 内置Tomcat默认端口号为8080,在开发多个应用调试时很不方便,本文介绍了修改 Spring Boot内置Tomcat端口号的方法。 一、EmbeddedServletContainerCustomizer接口 ...
  • tomcat部署端口后修改

    2018-03-07 11:06:33
    自己总结的tomcat端口号修改,项目部署。给客户总结的文档。
  • Tomcat部署项目、修改端口和了解

    千次阅读 2019-11-29 13:24:25
    tomcat文件夹下的conf/server.xml中配置,host标签中添加: <Context docBase="E:\Program\JspProject" path= "/JspProject" /> 然后重启tomcat docBase:实际路径 path:虚拟路径 (绝对路径、...
  • spring boot 指定端口不外乎 该配置文件与改代码,但推荐的还是 修改配置文件,然我明明输入了 server:port:8004 重启tomcat 端口还是8080呢? 经过重复试验,终于找到了这个奇葩问题的关键所在,于是写几个文字,...
  • 一个tomcat部署多个项目并通过不同的端口访问
  • <转载>eclipse:更改tomcat端口号方法
  • 今天想用javaweb写点东西,在EclipseEE又出现了tomcat无法启动的情况,报错如下图。上一次出现,我以为是项目的问题,调了半天项目,把servlet删了重新导入,各种折腾,不知道怎么就弄好了,这次很明显项目没法弄...
  • Tomcat打包部署:1、先将项目打成war包maven 打包命令:http://blog.csdn.net/fayeyiwang/article/details/51076112进入要打包的web目录执行mvn clean install -Dmaven.test.skip=true2、将war包复制到Tomcat目录...
  • JAVA开发:Tomcat部署后地址栏需要输入8080端口,将server.xml文件端口号改成80后就不需要输入端口号了。那么能实现地址栏即可以输入8080端口号又可以选择不输入端口号进入网页吗?
  • tomcat默认的端口号是8080,可以通过配置端口号修改成80 步骤1:server.xml步骤2:80端口步骤3:80端口被占用 步骤1:server.xml tomcat的端口配置相关信息在 server.xml server.xml 记录了非常多的tomcat配置...
  • 1、部署成功后,在MyEclipse运行再次报8080、8009端口号错误 2、对了,我忘了在tomcat9.0里面配置环境变量,但我没配置也运行成功了,不知道是不是这个的问题,但我总觉得不是 于是我觉得...
  • 动态获取项目运行的端口号

    千次阅读 2019-12-16 17:29:17
    项目端口号背景环境代码pom依赖ymlSpring-boot项目入口配置获取端口号tomcatSpring-boot启动前两者整合定时器效果测试直接Spring-boot运行运行在tomcat项目地址 背景 在实际项目有时会一个项目代码启动多个实例。...
  • tomcat配置默认访问项目和HTTP端口号

    千次阅读 2018-11-25 18:45:09
    tomcat配置 下载压缩包,解压。 配置JAVA_HOME, CATALINA_HOME, PATH等环境变量 startup 访问URL http://localhost:8080 若页面显示如下,则证明配置成功。 - 刚才输入的URLlocalhost:8080其实访问的页面是...
  • Tomcat端口配置

    万次阅读 2018-08-27 14:42:53
    1.通过配置文件修改Tomcat端口号 首先:Tomcat端口号默认使用的是8080端口,没有修改的情况下都是8080 我们可以通过server.xml文件修改Tomcat的端口号 server.xml文件在哪? 首先找到Tomcat目录: conf目录下...
  • 怎么将java项目部署tomcat上面

    千次阅读 2019-12-07 14:57:32
    标题怎么将java项目部署tomcat上面 1、下载一个tomcat解压到本地; 2、需要在本地配置环境变量创建一个变量CATALINA_HOME,一个变量CATALINA_BASE下面的路径都是自己解压的tomcat位置,然后再path里面添加一个;%...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,475
精华内容 24,990
关键字:

java获取部署tomcat的端口号

java 订阅