2013-06-11 7 views
13

Buduję serwis internetowy z Javą, która nie korzysta z JSP lub serwletów i chcę uruchomić go na moim serwerze HTTP Apache bez konieczności instalowania i konfigurowania Tomcat. Czy to możliwe (łatwo) i jak mogę to zrobić?Jak mogę uruchomić aplikację Java na serwerze Apache 2.2 bez Tomcat?

Szukałem informacji na ten temat i jedyne, co spotkałem, to złącze Tomcat mod_jk, które nadal wymaga zainstalowania Tomcata. Czy czegoś brakuje?

+1

Uważam za mało prawdopodobne, że budujesz web-coś w Javie bez serwletów, więc odpowiedź jest prawie na pewno nie. Jeśli potrafisz wyjaśnić, w jaki sposób nie korzystasz z serwletów, może ci być odpowiednia odpowiedź. –

+0

Do czego służy apache, służy do: a) dostarczania statycznej zawartości (obrazów, dźwięków itp.) Oraz b) równoważenia obciążenia, ponieważ jest szybszy niż Tomcat. Ale robi się to * w koordynacji * z Tomcat, który obsługuje treść generowaną przez java. – SJuan76

+0

Tak, możesz, jeśli chcesz odkryć nowe koło i zrobić to, co Tomcat już robi. _ Jest to możliwe (łatwo) _ łatwiej niż instalowanie i konfigurowanie Tomcat, nie. –

Odpowiedz

6

Po pierwsze, Servlets jest podstawą programowania w Javie. Tak więc, niezależnie od tego, co robisz w Internecie, jak na przykład Web Services, będziesz potrzebował Kontenera Servlet jako Tomcat.

Odpowiedź na pytanie brzmi: "nie można uruchamiać go tylko na serwerze HTTP Apache", ponieważ nie jest to kontener serwletu.

0

Nie, Tomcat, pomost, JBoss lub GlassFish jest dość dużo obowiązkowa

3

To nie jest do końca jasne, co chcesz zrobić, ale mam zamiar się domyślić, że chcesz uruchomić samodzielną aplikację Java który może obsługiwać żądania HTTP i udostępniać je za pośrednictwem Apache. Jeśli tak jest, możesz to zrobić, konfigurując Apache za pomocą mod_proxy. This może być dobrym przykładem tego, jak można to zrobić.

11

Oczywiście Jest to możliwe. Możesz to zrobić za pomocą mod_cgi.

Bardzo prostym przykładem może być tak:

public class HelloWorld 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello Java CGI world!"); 
    } 
} 

a następnie plik skryptu (HelloWorld.shtml ze szlachetnych nie zapomnieć wykonać uprawnienie), który wykonuje klasy Javy

#!/bin/bash 
echo "Content-type: text/html" 
echo "" 

/usr/bin/java HelloWorld 

W Apache conf, po prostu zdefiniuj swój katalog skryptów, coś takiego:

ScriptAlias /cgi-bin/ /Users/hectorsuarez/Proyectos/test/cgi-bin/ 
<Directory "/Users/hectorsuarez/Proyectos/test/cgi-bin"> 
    SetHandler cgi-script 
    Options ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 

To ja t !. To bardzo prosty i banalny przykład.

To się komplikuje, ponieważ prawdopodobnie będziesz potrzebować silnika szablonów i znacznie lepszego sposobu zarządzania przychodzącymi wywołaniami CGI. Ale tak, to jest możliwe.

+2

Unikanie robienia tego w Perlu jest spowodowane tym, dlaczego serwlety (i kontenery serwletów) zostały wymyślone w pierwszej kolejności (przez "na pierwszym miejscu", mam na myśli lata 90-te). To nie będzie skalować. – michael

Powiązane problemy