Bug 52243 - Documentation of Service-Installer missing one information
Summary: Documentation of Service-Installer missing one information
Status: RESOLVED FIXED
Alias: None
Product: Tomcat 7
Classification: Unclassified
Component: Documentation (show other bugs)
Version: unspecified
Hardware: PC All
: P2 trivial (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-25 09:03 UTC by Christian Kütbach
Modified: 2020-08-23 20:45 UTC (History)
0 users



Attachments
when I try saw the e-learning lecture, there was some error. (2.96 KB, patch)
2020-08-23 20:45 UTC, yungsillee7
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Kütbach 2011-11-25 09:03:49 UTC
The documentation of the windows service installier is missing one information.

If one wants to create a service with a sepified PATH, it may not work:

Citadation from the documentation:
http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html

List of environment variables that will be provided to the service in the form key=value. They are separated using either # or ; characters.

Original documentation:
http://commons.apache.org/daemon/procrun.html
List of environment variables that will be provided to the service in the form key=value. They are separated using either # or ; characters. If you need to embed either # or ; character within a value put them inside single quotes.

The last part is important, but missing:
"If you need to embed either # or ; character within a value put them inside single quotes."

The ';' is the windows path-seperator-char and the path has to be masked by ' if it contains more than one directory.

This is missing in 5.5 and 6.0 as well.
Comment 1 Konstantin Kolinko 2011-11-25 13:29:28 UTC
You sound like you have tried this feature. Can you provide an example that is close to what you used in real life? What version of Tomcat you used?

From the description at [2] it is not clear to me where the quotes should be placed. Did you use key='value;value' or key=value';'value ?

[2] http://commons.apache.org/daemon/procrun.html
Comment 2 Christian Kütbach 2011-11-25 13:41:59 UTC
I used tomcat 5.5.34. 

Within my application I have to load a native *.dll file, which is loading another .dll. Therefor I needed to set the windowns PATH variable for the created windows service.

First I set the path like this:

tomcat5.exe //US//MY_SERVICE_NAME --Environment "PATH=.\;c:\path\to\bin"

The installed Windows service did not start at all, because the value inserted into the windows registry was not correct.

The documentation said that the value provided for --Environment is splitted at ; and also #. So I had to mask the windows-path.

I changed by script into this:

tomcat5.exe //US//MY_SERVICE_NAME  --Environment "PATH='.\;c:\path\to\bin'" 

and it worked just fine.

I think all versions of tomcat since 5.5 until now uses the same windows service wrapper.
Comment 3 Mark Thomas 2011-12-26 20:56:08 UTC
Thanks for the clarification. I have updated the docs for trunk, 7.0.x, 6.0.x and 5.5.x. I used a slightly different form of words.
Comment 4 yungsillee7 2020-08-23 20:45:58 UTC
Created attachment 37401 [details]
when I try saw the e-learning lecture, there was some error.

HTTP Status 500 -
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unparseable date: ""
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause

javax.servlet.ServletException: Unparseable date: ""
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
	org.apache.jsp.lecture.lec_005fmypage_jsp._jspService(lec_005fmypage_jsp.java:1261)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause

java.text.ParseException: Unparseable date: ""
	java.text.DateFormat.parse(DateFormat.java:337)
	org.apache.jsp.lecture.lec_005fmypage_jsp._jspService(lec_005fmypage_jsp.java:191)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.35 logs.

Apache Tomcat/5.5.35