With vanilla tomcat, you can POST
to URLs beneath SOMURL/manager/
with a proper manager user role defined. The liferay deployment of tomcat, however, is missing the manager
and host-manager
applications, and when I copy the directories from a vanilla Tomcat installation, I get the exception below:
Exception: javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:636)
root cause
java.lang.SecurityException: Servlet of class org.apache.catalina.manager.HTMLManagerServlet is privileged and cannot be loaded by this web application
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:636)
What's the proper way to remote deploy wars to a liferay instance? (Not portlets, in my case.)
I believe tomcat's manager application has some extra permissions in conf/Catalina/localhost/manager.xml - find this in a standard tomcat installation and do the same to your liferay/tomcat bundle, then it shouldn't be a problem to deploy this application.
Might also be in conf/server.xml...