2014-09-10 3 views
1

GWT RPC 응용 프로그램을 Tomcat 8에 배포했으며 일부 구성 데이터 (호스트 이름과 포트를 다른 서비스에로드)로 서버 코드를로드하려고합니다. 그렇지 않으면 서비스가 정상적으로 작동합니다. 나는 여러 가지 제안을 읽었으나 작동하지 않습니다.GWT - context.xml에서 구성 항목로드

내 Tomcat 컨텍스트에서 발췌 한 내용 (context.xml은 변경시 바람둥이를 다시 시작해야한다는 것을 알고 있습니다. 괜찮습니다).

<Context reloadable="true"> 

    <Parameter name="config_hostname" value="192.168.2.199" override="false"/> 
    <Parameter name="config_port" value="8888" override="false"/> 

내 서비스 구현에는 setup() 메소드가 있습니다. 설정에서 액세스하려고 시도합니다 :

String hostname = getServletConfig().getInitParameter("config_hostname"); 
String port = getServletConfig().getInitParameter("config_port"); 

그러나 작동하지 않습니다. 누구든지 올바른 길에 나를 놓을 수 있습니까?

------------------- 업데이트 -------------------

나는이

<web-app> 
<context-param> 
    <param-name>hostname</param-name> 
    <param-value>192.168.2.199</param-value> 
</context-param> 
</web-app> 

처럼 web.xml의 정보를 넣고 이런 식으로 사용하여 시도했다 (두 작품!) :

String h1=getServletConfig().getServletContext().getInitParameter("hostname"); 
String h2=getServletContext().getInitParameter("hostname"); 

그러나 내가 웹에 넣어 싶지 않아요. xml 왜냐하면 각 배포마다 다른 설정을 원하기 때문입니다. Tomcat에는 conf/server.xml och conf/context.xml이 있습니다. 그런 시도를했지만 위의 호출에서 NULL을 얻습니다.

서버 쪽 구성을 저장하는 가장 좋은 방법은 무엇입니까? 당신의 대답에 자세히 설명해주십시오.

나는 http://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html에 doumentation을 읽었지만 분명히 이해하지 못합니다.

+0

이 코드는'ServletContextListener' 또는'RemoteServiceServlet'에 있나요? ServletContextListener # contextInitialized 메소드는 서버가 시작될 때 한 번 호출됩니다.이 메소드는 일반적으로 그러한 코드를 추가하는 곳입니다. –

+0

나는이 클래스의 메소드에서 "public class MyService extends RemoteServiceServlet"을 가지고있다. –

+0

context.xml 대신 web.xml에 init 매개 변수를 넣으려고 했습니까? "web-app"요소의 하위 요소 인 web.xml 파일에 다음 요소가 있습니다. ConfigFilename cfg/FosterAPet.cfg' –

답변

1

나는 /docs/config/context.html에서 바람둥이 워드 프로세서 여기에 대한 답을 찾을

의 context.xml의 구문은 (내가 여기 beginnig에서 정확했다)해야한다 :

<Context> 
    <Parameter name="hostname" value="<some-ip-address>" override="false"/> 
</Context> 

하고 통화는해야 읽기 :

getServletConfig().getServletContext().getInitParameter("hostname"); 
    OR  
getServletContext().getInitParameter("hostname"); 

은 내가 배우고 더 많이 가지고 확신 (톰캣에서 별도의 웹 애플리케이션을위한 해부 PARAMS을 가지고 예를 들어,하지만이 지금은 좋다).

관련 문제