2010-12-10 2 views
6

이미지를 입력으로 사용하고 다른 이미지를 출력하는 Java 응용 프로그램이 있습니다. 인기있는 호스트 (PHP + MYSQL 호스팅)가있는 웹 사이트가 있습니다. 사용자가 이미지를 업로드하여 이미지를 Java 응용 프로그램으로 전달할 수있는 양식으로 PHP를 사용하여 웹 사이트에 페이지를 만들고 싶습니다.PHP가 웹 서버의 Java 응용 프로그램과 실행 및 통신하도록 설정합니다.

사용자가 이미지를 업로드하면 웹 서버의 폴더에 저장됩니다. 그런 다음 서버에서 자바 응용 프로그램을 호출하여 이미지의 URL을 인수로 전달한 다음 Java 응용 프로그램에서 다른 이미지를 결과 폴더로 출력합니다. 실행 후 PHP 페이지는 결과 이미지를 브라우저에 표시합니다.

내 질문은 다음과 같습니다. 인기있는 웹 호스트에서 Java 응용 프로그램을 실행할 수 있습니까 (예 : WebHostingBuzz.com)?

Java 응용 프로그램은 많은 이미지 처리를하기 때문에 꽤 무겁습니다. 자바 애플리케이션을 다른 웹 서버로 오프로드해야합니까? 그렇다면 내 Java 앱을 실행할 서비스가 있습니까?

(선택 사항) 내 Java 앱의 데모이며 사람들이 업로드 한 이미지를 저장하고 싶지 않습니다. 업로드 된 이미지를 java 앱에 직접 전달하고 웹 서버에 저장하는 대신 직접 생성 된 이미지를 출력 할 수있는 방법이 있습니까? 이미지가 크다면 PHP가 타임 아웃 후에 실행을 멈추게 만들 수 있기 때문에이 방법을 선호합니다.

예를 들어 PHP가 Java App를 호출 할 때 응용 프로그램이 처리를 마칠 때까지 기다려야합니다. 자바 애플 리케이션은 처리가 완료되고 페이지가 리디렉션되거나 그에 따라 새로 고쳐진다는 PHP 페이지에 대한 응답을 보내길 원합니다.

아이디어를 얻으시기 바랍니다. 구현에 사용할 수있는 기술을 제안하고 더 좋은 아이디어가 있다면 게시하십시오. 감사합니다.

답변

4

내 질문은 다음과 같습니다. 인기있는 웹 호스트 (예 : WebHostingBuzz.com)에서 Java 응용 프로그램을 실행할 수 있습니까?

기술적으로 가능합니다. 그러나 호스트는 JRE를 호스트에 설치하고 PHP 사용자에게 충분한 OS 레벨 및 파일 시스템 레벨 권한을 부여해야합니다. 그래서 당신은 정말로 그들이이 기회를 제공하는지 호스팅에 의존합니다. 가장 좋은 방법은 지원팀에 문의하여 요청하는 것입니다.

지원되는 경우 shell_exec() 만 사용할 수 있습니다.

$result = shell_exec("java -jar /path/to/imageprocessor.jar " + $imagepath); 
if ($result) { 
    // Shell execution succeed. 
} else { 
    // Shell execution failed. 
} 

비동기 통신/백그라운드 처리의 경우 클라이언트는 ajaxical 요청을 실행해야합니다.

지원되지 않는 경우 Java를 PHP로 이식하는 것이 좋습니다. GD image library에는 사용할 수있는 꽤 많은 기능이 있습니다.

0

Java 응용 프로그램을 웹 응용 프로그램으로 만드는 것이 PHP가 URL을 통해 호출 할 수 있기 때문에 이미지의 URL을 넣을 수있어서 Java에서 다운로드 할 수 있습니까? http://yourjavaserver/imageprocessing?imgurl=IMAGE_URL

와 자바 서블릿 같은

이미지 파일 itlsef으로 응답한다.

google에서 'java 호스팅'을 찾아 호스트를 찾을 수 있지만 PHP 호스팅보다 비용이 많이 듭니다. 어쩌면 최선의 선택은 PHP와 Java 응용 프로그램을 모두 호스팅 할 수있는 전용 서버를 얻는 것입니다 ...

0

여기에 최선의 방법은 Java 응용 프로그램이 파일을로드 할 수있는 cron (또는 데몬)으로 실행하는 것입니다. 데이터베이스의 세부 사항. 생성이 완료된 후 사용자 부분에서 (하나 이상의) 페이지 새로 고침이 필요합니다.이 시점에서 스크립트는 데이터베이스/파일 시스템에서 이미지를 호출 할 수 있습니다.

PHP 웹 페이지의 제한 시간 제한 때문에 실시간으로 처리 할 수 ​​없을 것이라고 생각합니다. 그러나 파일을 가져 와서 서버에 보내기 전에 처리 할 수있는 자바 애플릿을 작성할 수 있습니다 (또는 변환 방법을 사용하는 방법에 따라 변환 후 업로드 할 필요가 없을 수도 있습니다).

2

Google App Engine은 Java 및 Python 웹 응용 프로그램을 호스팅 할 수 있습니다. SDK 및 기본 계정은 무료입니다. SDK를 사용하면 로컬에서 응용 프로그램을 개발하고 테스트 한 다음 App Engine에 간단히 배포 할 수 있습니다 (NetBeans 및 Eclipse 플러그인 사용 가능).

그러면 PHP 응용 프로그램이 HTTP POST의 데이터를 Google App Engine 응용 프로그램에 보내고 응답 데이터에서 결과를 얻을 수 있습니다.

또는 데이터가 데이터베이스 blob에 먼저 저장되고 처리 작업이 작업 대기열 ('메시지 대기열')에 저장됩니다. 이것은 데이터가 POST 된 직후에 PHP 클라이언트 요청이 반환된다는 장점이 있습니다. 그런 다음 Google 애플리케이션 엔진이 이미지를 처리하는 동안 PHP 애플리케이션은 결과 데이터를 폴링 할 수 있습니다. PHP 측은 이런 식으로 반응이 더 좋을 것입니다.

+0

감사합니다. 나는 이것에 대해 몰랐다. 나는 그것을 조사 할 것이다. – tHeSiD

관련 문제