java - Tomcat 无法在主机上下文 server.xml 中设置 'source' 属性集

标签 java eclipse tomcat netbeans

我们有一个在 Netbeans 的 Tomcat 下运行的 Web 应用程序,我正试图让它在 eclipse 的 Tomcat 下运行。

我在 eclipse 中创建了一个服务器,在我的机器上指定了用于从 Netbeans 运行的相同的 tomcat 7 安装。我知道,当有人这样做时,eclipse 会将 catalina.base 服务器文件复制到它自己的临时目录中,以将它们分开。

它显然还对其使用的 server.xml 进行了一些更改。在tomcat目录下的server.xml中,Host标签是这样的:

  <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

但是在eclipse环境下,是

  <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
            <Valve className="org.apache.catalina.authenticator.SingleSignOn"/>
    <Context docBase="myApp-war" path="/myApp" reloadable="true" source="org.eclipse.jst.jee.server:myApp-war"/>
   </Host>

删除空格和注释后。

我们的问题(显然)是运行时没有 source 属性,可在 Context 标记中为其分配值。我们发现在 Tomcat 7.0 文档中没有为“主机/上下文”记录,并且在运行时我们在控制台中有以下内容:

Jan 12, 2017 1:23:21 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:salespoint-war' did not find a matching property.
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_07\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0_07\jre\bin;C:/Program Files/Java/jre1.8.0_91/bin/server;C:/Program Files/Java/jre1.8.0_91/bin;C:/Program Files/Java/jre1.8.0_91/lib/amd64;C:\ProgramData\Oracle\Java\javapath;c:\local;c:\devTools\apache-maven\bin;C:\Perl64\site\bin;C:\Perl64\bin;c:\Program Files\Java\jdk1.7.0_07\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\WinMerge;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;c:\Program Files\Apache\apache-cxf-3.1.6\bin;C:\Windows\system32;;.
Jan 12, 2017 1:23:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8443]]

我们认为它无法处理 SSL 连接,因为它无法初始化连接器。我们也不知道为什么它找不到 APR 库,因为这与 Netbeans 使用的 Tomcat 安装相同,因此它没有给出这样的错误消息。

任何人都可以帮助我们了解这里出了什么问题吗?我们发现我们遗漏了某种配置。

IN CASE IT'S RELEVANT - 在我们的连接器配置中发现了关于其他几个特定于 APR 的属性的类似 SetPropertyRule 警告。我们向连接器添加了 protocol="org.apache.coyote.http11.Http11AprProtocol" 以使 APR 协议(protocol)显式化,显然 Netbeans 推断它或将其作为默认值或其他东西。这消除了特定于 APR 属性的警告,但给我们留下了这个警告。

=== 编辑

这是我们在 server.xml 中的两个连接器:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

<!-- SSL Connector Configuration-->
<Connector 
protocol="org.apache.coyote.http11.Http11AprProtocol"
SSLCertificateFile="${catalina.base}\conf\ssl_crt\mycert\server.crt" 
SSLCertificateKeyFile="${catalina.base}\conf\ssl_crt\mycert\server.key" 
SSLCipherSuite="RC4-SHA:HIGH:!ADH:!SSLv2:@STRENGTH" 
SSLEnabled="true" 
SSLPassword="webapps.accesspointinc.com" 
SSLProtocol="all" 
acceptCount="100" 
compression="on" 
compressionMinSize="2048" 
disableUploadTimeout="true" 
enableLookups="false" 
executor="tomcatThreadPool" 
maxHttpHeaderSize="8192" 
maxThreads="200" 
port="8443" 
scheme="https" 
secure="true"/>

以及整个日志文件,包括错误消息:

Jan 12, 2017 1:23:21 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:salespoint-war' did not find a matching property.
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_07\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0_07\jre\bin;C:/Program Files/Java/jre1.8.0_91/bin/server;C:/Program Files/Java/jre1.8.0_91/bin;C:/Program Files/Java/jre1.8.0_91/lib/amd64;C:\ProgramData\Oracle\Java\javapath;c:\local;c:\devTools\apache-maven\bin;C:\Perl64\site\bin;C:\Perl64\bin;c:\Program Files\Java\jdk1.7.0_07\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\WinMerge;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;c:\Program Files\Apache\apache-cxf-3.1.6\bin;C:\Windows\system32;;.
Jan 12, 2017 1:23:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8443]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
Caused by: org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:972)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    ... 12 more

Jan 12, 2017 1:23:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 12, 2017 1:23:21 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 789 ms
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 12, 2017 1:23:21 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.63
Jan 12, 2017 1:23:22 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jan 12, 2017 1:23:27 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "/salespoint" "read")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1302)
    at java.lang.System.getProperty(System.java:706)
    at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:146)
    at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117)
    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.ExceptionInInitializerError
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:88)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:269)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "c:\Program Files\apache\apache-tomcat-7.0.63\logs\applications\salespoint.log" "write")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkWrite(SecurityManager.java:979)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:203)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:136)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
    at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
    at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
    ... 17 more

Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/salespoint] startup failed due to previous errors
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:88)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
    at org.springframework.web.context.ContextCleanupListener.<clinit>(ContextCleanupListener.java:43)
    at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:144)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5064)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5726)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Jan 12, 2017 1:23:27 PM org.apache.catalina.core.ApplicationContext log
INFO: Shutting down log4j
Jan 12, 2017 1:23:27 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1269)
    at java.lang.System.getProperties(System.java:622)
    at org.springframework.web.util.WebUtils.removeWebAppRootSystemProperty(WebUtils.java:167)
    at org.springframework.web.util.Log4jWebConfigurer.shutdownLogging(Log4jWebConfigurer.java:174)
    at org.springframework.web.util.Log4jConfigListener.contextDestroyed(Log4jConfigListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5064)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5726)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Jan 12, 2017 1:23:27 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 12, 2017 1:23:27 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 12, 2017 1:23:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6175 ms

最佳答案

您正在告诉 Tomcat 使用 APR 连接器,但无法找到 APR 库。您的 java.library.path 系统属性中包含大量路径:

  • C:\Program Files\Java\jdk1.7.0_07\bin
  • C:\Windows\Sun\Java\bin
  • C:\Windows\system32
  • C:\Windows
  • C:\Program Files\Java\jdk1.7.0_07\jre\bin
  • C:/Program Files/Java/jre1.8.0_91/bin/server
  • C:/Program Files/Java/jre1.8.0_91/bin
  • C:/Program Files/Java/jre1.8.0_91/lib/amd64
  • C:\ProgramData\Oracle\Java\javapath
  • c:\local
  • c:\devTools\apache-maven\bin
  • C:\Perl64\site\bin
  • C:\Perl64\bin
  • c:\Program Files\Java\jdk1.7.0_07\bin
  • C:\Windows\system32
  • C:\Windows
  • C:\Windows\System32\Wbem
  • C:\Windows\System32\WindowsPowerShell\v1.0\
  • C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86
  • C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64
  • C:\Program Files\Microsoft SQL Server\120\DTS\Binn\
  • C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
  • C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\
  • C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\
  • C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
  • C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\
  • C:\Program Files\Microsoft SQL Server\100\DTS\Binn\
  • C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\
  • C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\
  • C:\Program Files\Microsoft SQL Server\100\Tools\Binn\
  • C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\
  • C:\Program Files\TortoiseSVN\bin
  • C:\Program Files (x86)\WinMerge
  • C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
  • c:\Program Files\Apache\apache-cxf-3.1.6\bin
  • C:\Windows\system32
  • .(进程当前工作目录)

如果这“在 Netbeans 中”有效,那么我怀疑是以下问题之一:

  1. NetBeans 在启动 Tomcat 时指定了不同的 java.library.path 系统属性
  2. NetBeans 在启动 Tomcat 时使用不同的当前工作目录

无论哪种情况,tcnative 库都必须位于 Tomcat 可以找到的位置。您需要将 tcnativeapropenssl 库全部放在 java.library.path 中存在的位置 系统属性。

我建议将它们放在一个可预测的目录中(如 %CATALINA_HOME%/bin),然后将 java.library.path 显式设置为 %CATALINA_HOME %/bin 启动 Tomcat 时。

关于java - Tomcat 无法在主机上下文 server.xml 中设置 'source' 属性集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620556/

相关文章:

java - 使用 Streams 将 PriorityQueue 转换为 Map

java - 无法在JPA中进行子查询

java - 将 C 中的 crc8 函数转换为 Java

eclipse - 调试eclipse e4源代码

c++ - Eclipse CDT 自动完成功能不起作用

java - 启动Tomcat未能初始化与ProtocolHandler关联的终点

java - 在 Tomcat 上配置 SSL |获取空白文件

java - 在准备好读取的多个套接字中进行选择

javascript - WebApp 将静态 HTML/JS 文件放在 WAR 中还是单独的 Web 服务器中?

eclipse - 无法在 eclipse 中解析导入 javax.jws