2013-09-29 2 views
0

웹 서버에 응용 프로그램을 배포하려고합니다. (지금까지 저는 heroku를 사용했지만 다른 서비스는 열려 있습니다.).war 파일과 jni 라이브러리 파일을 웹 서버에 배포하는 방법은 무엇입니까?

나는 IntelliJ을 사용하고 있으며 Spring 응용 프로그램 (Tomcat 7을 사용하여 실행)을 만들었습니다. 내 응용 프로그램의 요구 사항 중 하나는 내가 어떤 C 코드를 실행하는 것입니다. 나는 JNI를 연구하여 C 코드에서 .so 라이브러리를 컴파일하는 데 성공했습니다.

모든 것이 완벽하게 작동합니다. IntelliJ.so 라이브러리가 올바르게로드되게하려면 IntelliJbin/ 디렉토리에 넣으십시오 (Tomcat은 .so 파일이있는 디렉토리에 직접 지정하려면 VM 옵션 -Djava.library.path을 사용하는 방법이 있습니다).

내 질문은 : 어떻게하면 JNI 라이브러리를로드하기 위해 Tomcat이 필요하다는 것을 알면서 내 애플리케이션을 온라인 어딘가에 넣으려고합니까?

답변

0

웹 서버 스택에서 JNI를 사용하지 않는 것이 좋습니다. 원시 코드 폭탄이 있으면 전체 웹 서버를 중단시킵니다.

네이티브 코드가 절대적으로 필요한 경우 대안은 노출 된 RMI 인터페이스가있는 독립 실행 형 응용 프로그램으로 해당 코드를 실행하는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 앞으로 RMI를 염두에 두겠습니다. 그러나, 당신은 정확히 내가해야 할 일에 대한 나의 질문에 대답하지 않았습니다. 지금 나는 아마존의 EC2를 놀고있다. – bourbaki4481472

+0

@ijkilchenko 시스템의 라이브러리 경로'System.getProperty ("java.library.path")'를 질의 할 수 있습니다. 어쩌면 아마존 EC2가 파일을 버릴 수있는 장소 일 수도 있습니다. – Samhain

관련 문제