tomcat - Netbeans 不从 Tomcat 的 %CATALINA_BASE%/lib 文件夹加载库
问题描述
我有一个运行良好的 Tomcat 9 服务器,它被拆分到 CATALINA_HOME(bin,带有 tomcat jar的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 文件夹中的库?
解决方案
我在 Tomcat 8 和 8.5 以及基于 NetBeans 8.2 和 12 Ant 的项目中遇到了同样的问题。我做了很多测试和一些研究。我看到了很多与处理 CATALINA_BASE 相关的其他问题报告,但不是这个。
我当前的解决方案是将 CATALINA_HOME 目录更改为可由我自己写入,并将我的库放置到 CATALINA_HOME/lib 中。这不太理想,因为它并不是真正针对部署环境进行开发的,但它似乎是一种必要的解决方法,无需更改 NetBeans 的代码。
通过这个设置,我质疑我在 NetBeans Server Tomcat 配置中使用 Catalina Base。我不确定它提供了什么价值,只是我注意到 8.2 捆绑的 Tomcat 8.0 也包含在带有 httpmonitor 和 schema2beans 库的 CATALINA_BASE/nblib 中。
推荐阅读
- pine-script - 为什么我得到这个不能调用'macd'错误?
- javascript - 无法将 JSON 连接到 JSON 数组
- azure - Azure 函数 - 如何在类中使用 context.log?
- date - 获取该日期所在季度前一季度最后一天的日期
- flutter - Flutter:如何通过 onRefresh 回调传递 herotag
- yoast - 带有临时站点的 Yoast 规范问题
- javascript - React - 从子组件发布时无法让 DOM 提取最新数据
- unity3d - 在 Unity、VScode 中打开脚本时无法引用 .NetFramework
- python - 我无法使用 pip 安装 streamlit
- c# - C# 列表元组编码练习