Netbeans不会从Tomcat的%CATALINA_BASE%/ lib文件夹中加载库

时间:2019-03-25 17:23:48

标签: tomcat netbeans catalina tomcat9

我有一台运行良好的Tomcat 9服务器,可以将其拆分为CATALINA_HOME(带有tomcat jar的bin, lib )和CATALINA_BASE(带有其他jar,webapps的另一个 lib 文件夹)其他一切)。 将CATALINA_HOME和CATALINA_BASE设置为全局系统变量。

我想在使用Netbeans IDE的开发PC(Windows)上重复这种配置。 因此,当我将Tomcat添加到Netbeans并仅使用bin和lib文件夹设置CATALINA_HOME的位置时,它会询问我CATALINA_BASE,并且也进行了设置。

结果是,我看到tomcat从CATALINA_HOME \ lib加载了它的库,但是放弃了位于CATALINA_BASE \ lib中的库(Netbeans中的项目也没有从CATALINA_BASE \ lib中看到库)。

如果我将Tomcat作为服务安装并运行,它将成功地从两个文件夹中加载所有库。

我认为也许可以在Netbeans服务器配置文件中找到一些与此相关的参数: C:\ Users \\ AppData \ Roaming \ NetBeans \ 10.0 \ config \ J2EE \ InstalledServers \ .nbattrs

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE attributes PUBLIC "-//NetBeans//DTD DefaultAttributes 1.0//EN" "http://www.netbeans.org/dtds/attributes-1_0.dtd">
<attributes version="1.0">
    <fileobject name="instance">
        <attr name="admin_port" stringvalue="8005"/>
        <attr name="debug_type" stringvalue="SEL_debuggingType_shared"/>
        <attr name="displayName" stringvalue="Apache Tomcat 9.0.17"/>
        <attr name="httpportnumber" stringvalue="80"/>
        <attr name="instance_id" stringvalue="tomcat90"/>
        <attr name="java_opts" stringvalue="-Xms512m -Xmx512m -verbose:gc -Dfile.encoding=UTF-8"/>
        <attr name="java_platform" stringvalue="jdk1.8.0_202"/>
        <attr name="monitor_enabled" stringvalue="false"/>
        <attr name="registeredWithoutUI" stringvalue="false"/>
        <attr name="runningCheckTimeout" stringvalue="2000"/>
        <attr name="timestamp" stringvalue="1553528984776"/>
        <attr name="url" stringvalue="tomcat90:home=C:\dev\srv\apache-tomcat-9.0.17:base=C:\dev\srv\catalina_base"/>
        <attr name="username" stringvalue="tomcatuser"/>
    </fileobject>
</attributes>

但是我没有找到任何选择。

所以问题是:如何配置Netbeans以支持CATALINA_HOME和CATALINA_BASE文件夹中的库?

1 个答案:

答案 0 :(得分:1)

我在基于NetBeans 8.2和12 Ant项目的Tomcat 8和8.5中遇到了相同的问题。我做了很多测试和研究。我看到许多其他有关处理CATALINA_BASE的问题报告,但不是专门针对此问题的。

我当前的解决方案是将CATALINA_HOME目录更改为自己可写,并将库放置到CATALINA_HOME / lib。这不是理想的选择,因为它并不是针对部署环境开发的,但是在没有对NetBeans进行代码更改的情况下,这似乎是一种必要的解决方法。

使用此设置,我对在NetBeans Server Tomcat配置中对Catalina Base的使用提出了质疑。我不确定它提供什么值,除了我注意到8.2捆绑的Tomcat 8.0也会通过httpmonitor和schema2beans库放入CATALINA_BASE / nblib中。