views:

292

answers:

3

How do I pass a property to a Java process, started as a Windows service using Wrapper.exe?

The target code calls:

System.getProperty("ADMIN_USERNAME");
A: 

You can set certain properties in the wrapper config file, see this link:

http://wrapper.tanukisoftware.org/doc/english/properties.html

I believe you can also configure the wrapper to startup java and pass additional properties using the java "-Dproperty=value" syntax

Andy White
+2  A: 

http://wrapper.tanukisoftware.org/doc/english/prop-java-additional-n.html

You can set "additional parameters" that will go to the JVM (as opposed to your main class), and -DADMIN_USERNAME=gandalf should work there.

wrapper.java.additional.1=-Xrs
wrapper.java.additional.2=-Dprop=TRUE
wrapper.java.additional.3=-DADMIN_USERNAME=gandalf

Update: You must start with additional.1 and count up without gaps (This is a convention for shoe-horning lists into Java properties syntax).

Thilo
Sounds good but doesn't work for me unfortunately.I tried: wrapper.java.additional.3=-DADMIN_USERNAME=gandalf wrapper.java.additional.3=-DADMIN_USERNAME="gandalf" wrapper.java.additional.3=-DADMIN_USERNAME gandalf
parkr
did you also have additional.1 (you must start with .1 and have no gaps)?
Thilo
Right. Yes I did.
parkr
Hmm. Are the other settings in the file working properly?
Thilo
wrapper.app.parameter.1=-class demo.launcher.Launcher resolves to the correct class. And .2 is a parameter, not a property but it seems fine. Also tried rearranging the order to put -D options first, but not success.
parkr
I have accepted your answer because I think it is correct and helpful.
parkr
Please let us know if you figure out why it still did not work.
Thilo
My error - it has to be wrapper.java.additional.x not wrapper.app.parameter.x - Thanks!
parkr
A: 

This is a shot in the dark, but have you considered using JMX to communicate with the service? Or is this overkill for what you need?

Yuval =8-)

Yuval