java - 无法在Mac的Tomcat中为Webapp创建目录

标签 java macos maven tomcat

我试图将Web应用程序smart4j部署到localhost中的tomcat 8服务器。它失败,并显示以下消息(已更新):

08-Nov-2015 08:57:42.302 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
08-Nov-2015 08:57:42.309 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
08-Nov-2015 08:57:42.310 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 867 ms
08-Nov-2015 08:59:31.907 INFO [http-nio-8080-exec-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /Users/minconghuang/Informatique/Java/apache-tomcat-8.0.21/webapps/smart4j.war
08-Nov-2015 08:59:36.764 SEVERE [http-nio-8080-exec-1] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/smart4j]
 java.io.IOException: Unable to create the directory [/Users/minconghuang/Informatique/Java/apache-tomcat-8.0.21/webapps/smart4j/license]
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:151)
    at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:618)
    at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:744)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:307)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:461)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1526)
    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:606)
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460)
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:733)
    at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:651)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

08-Nov-2015 09:00:02.991 INFO [http-nio-8080-exec-1] org.apache.jasper.servlet.TldScanner.scanJars 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.
08-Nov-2015 09:01:31.692 SEVERE [http-nio-8080-exec-1] org.apache.catalina.core.StandardContext.startInternal Error listenerStart
08-Nov-2015 09:01:31.693 SEVERE [http-nio-8080-exec-1] org.apache.catalina.core.StandardContext.startInternal Context [/smart4j] startup failed due to previous errors
08-Nov-2015 09:01:31.781 WARNING [http-nio-8080-exec-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [smart4j] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
08-Nov-2015 09:01:31.782 WARNING [http-nio-8080-exec-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [smart4j] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
 com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)
08-Nov-2015 09:01:31.783 SEVERE [http-nio-8080-exec-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [smart4j] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@3a0f8a4d]) and a value of type [org.hibernate.internal.SessionFactoryImpl] (value [org.hibernate.internal.SessionFactoryImpl@25c37603]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
08-Nov-2015 09:01:31.783 SEVERE [http-nio-8080-exec-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [smart4j] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@5240e302]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
08-Nov-2015 09:01:31.790 INFO [http-nio-8080-exec-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /Users/minconghuang/Informatique/Java/apache-tomcat-8.0.21/webapps/smart4j.war has finished in 119,883 ms


为了确保Tomcat有权在我的Mac上进行写入,我做了chmod 777 webapps来授予webapps文件夹,但这没有帮助。这是一些有用的细节。

webapps文件夹的内容:

macbook-pro-de-mincong:webapps minconghuang$ ls -l
total 116168
drwxr-xr-x@ 19 minconghuang  staff       646 Mar 23  2015 ROOT
drwxr-xr-x@ 55 minconghuang  staff      1870 Mar 23  2015 docs
drwxr-xr-x@  7 minconghuang  staff       238 Mar 23  2015 examples
drwxr-xr-x@  7 minconghuang  staff       238 Mar 23  2015 host-manager
drwxr-xr-x@  8 minconghuang  staff       272 Mar 23  2015 manager
drwxr-xr-x   5 minconghuang  staff       170 Nov  7 18:05 mvndeploy
-rw-r--r--   1 minconghuang  staff      1693 Nov  7 18:05 mvndeploy.war
-rw-r--r--   1 minconghuang  staff  59472717 Nov  7 20:12 smart4j.war 


conf / tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="mincong" password="mincong" roles="admin-gui,manager-gui,manager-script"/>
</tomcat-users>


顺便说一句,我用一个简单的基于Maven的项目mvndeploy.war做了另一个部署测试。它确实扩展到一个文件夹中。所以,我在我的应用程序smart4j中缺少什么吗?

最佳答案

我从程序文件中卸载了tomcat并将其安装在C:\ tomcat 9中,现在可以使用了。

关于java - 无法在Mac的Tomcat中为Webapp创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587067/

相关文章:

属性文件中的 Java Spring Maven 值

java - 将表 Guava 用于 hashbasedTable

macos - Dylibs 和 OS X

Java 8 嵌套 lambda 函数查找特定键的总和

macos - gfortran 不适用于 Mac OS X 10.9

mysql - 通过 WLAN 同步 MAMP 数据库

java - Spring MVC Controller 未被调用

maven - 如何设置具有相互依赖关系的 Maven 子项目?

java.util.Date 和 jodaTime 时区

java - Spring Integration - 入站文件端点。如何正确处理文件。