2012-12-18 11 views
8

Moja aplikacja to aplikacja internetowa oparta na Spring framework 3.1.2 wdrożona na Apache tomcat 6.Uzyskaj numer portu i nazwę hosta w aplikacji Spring na serwerze Tomcat

muszę się moja aplikacja działa port-numer i host-name od aplikacji (serwer) Start-up. Tak, że przesłonię go na właściwości i potrzebuję Innej inicjalizacji.

Czy wiosna udostępnia żadnych opcji do pobranego przez te szczegóły i ustawić go na serwerze starcie? ..

Odpowiedz

-3

Tomcat zostanie uruchomiony domyślnie na TCP/IP, numer portu 8080.

Kroki

  1. Przejdź do C:\apache-tomcat-6.0.18\conf\server.xml (miejsca, w którym został zainstalowany tomcat)
  2. w pliku server.xml, znaleźć Złącze portu patrząc jak na poniższym

    <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443">  
    
    </connector> 
    

port w znaczniku Connector to Twój numer portu.

Znajdowanie hostów:

Kroki

1. Navigate to `C:\WINDOWS\system32\drivers\etc` 

Albo

Start-> Wszystkie Programy-> Run-> wpisać Kierowców (bez cudzysłowów) -> itp

  1. Otwórz host pliku dowcip h edytora tekstu i można znaleźć
127.0.0.1  localhost 

Z tego można zrozumieć, co jest nazwa hosta.

Dzięki.

+2

Chcę te dane (PortNumber & hostname) w czasie wykonywania (tj programowo). Nie przy ręcznym sprawdzaniu !. – omega

+0

Przepraszam. mój błąd. odpowiedź zaktualizowana osobno. Dzięki. –

4

Spójrz na dwa wcześniej zadane pytania: Get the server port number from tomcat with out a request i I need to know the HTTP and HTTPS port my java webapp is running on webapp startup. Tam zobaczysz, jak uzyskać port ze złącza, złącze ma również metodę getDomain, która daje ci nazwę hosta.

Ponieważ wiesz, jak uzyskać bez sprężyny, możesz mieć fasoli, która pobiera te szczegóły i zapewnia je dla innych fasoli, która potrzebuje tych szczegółów wystąpienia.Istnieje kilka sposobów, aby to zrobić:

1) Utwórz Wiosna fabrycznego fasoli że dostanie portu, nazwę hosta i tworzy wystąpienie fasoli chcesz

2) mają oddzielne fasoli, która przechowuje te informacje dla Ciebie i użyć tego Bean zbudować drugi

3) można zastąpić dane aplikacji z portu i domeny i kiedy instancji fasola, że ​​ich potrzebuje mieć metodę init by je przeczytać na nowym fasoli

-4

ServletRequest obiekt, który został przekazany do listy Metoda doGet lub doPost ma getServerName() i getServerPort() metody zapewniające tę informację.

Przykład:

public void doGet(ServletRequest request, ServletResponse response) { 
    System.out.println("Host Name = " + request.getServerName()); 
    System.out.println("Port Number = " + request.getServerPort()); 
} 
+8

stary, czy nawet przeczytałeś pytanie? ta odpowiedź jest równie zła jak twoja pierwsza ... całkowicie warta spadku. – Yevgeniy

+0

Pytanie dotyczy Spring MVC, a nie serwletów. –

1

Oto kod na uzyskanie adresu portu dip

class IPAddressDemo{ 
    public static String getIpAddressAndPort1() throws MalformedObjectNameException, NullPointerException, 
      UnknownHostException { 
     MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); 
     Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), 
       Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"))); 
     String host = InetAddress.getLocalHost().getHostAddress(); 
     String port = objectNames.iterator().next().getKeyProperty("port"); 
     String ipadd = "http" + "://" + host + ":" + port; 
     System.out.println(ipadd); 
     return ipadd; 
    } 
} 
Powiązane problemy