Zgodnie ze specyfikacja uslug sieciowych (JSR-109), mozna to zrobic poprzez element <env-entry /> umieszczony w deskryptorze aplikacji. Dostep uzyskuje sie albo poprzez adnotacje @Resource, albo z poziomu JNDI. Np.:
web.xml
<web-app>
...
<env-entry>
<env-entry-name>myEnvValue</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ENV-VAR</env-entry-value>
</env-entry>
</web-app>
WebServiceHello.java
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.xml.ws.WebServiceException;
@WebService()
public class WebServiceHello {
@Resource(name="myEnvValue")
private String env;
@WebMethod
public String hello() {
try {
Context ctx = (Context)new InitialContext().lookup("java:comp/env");
String env2 = (String) ctx.lookup("myEnvValue");
return String.format("Injected: %s - JNDI: %s", env, env2);
} catch(Exception e) {
throw new WebServiceException(e);
}
}
}