2012-06-08 3 views
3

Я думаю, что я пытаюсь сделать тривиально простым для всех, кто знает, что они делают, но единственный язык, который почти без исключения я запрограммировал, - это C. Я делаю это плохо. Я пытаюсь создать webapp на эластичном beanstalk, который говорит о программе C. Мой текущий план заключается в использовании JNI для создания собственной функции, которую я могу вызвать на главной странице jsp, когда кто-то заполняет форму и нажимает кнопку.Простая программа C в эластичном бобовом стебле

До сих пор на конце C я написал функцию, содержащую 7 входных переменных и 7 выходных переменных, необходимых для того, чтобы программа C выполняла все необходимое. Мне не нужно обращаться к базе данных или делать что-то тяжелое, мне просто нужно передать 7 переменных и 7 переменных.

Я создал класс java, который имеет собственный метод. Я дал ему основную функцию, которая хранится в фиктивных переменных и выводит результаты. JNI работает, когда я компилирую его все в одном каталоге без каких-либо имен пакетов или чего-то, что его усложняет (я не могу заставить его работать с именами пакетов.) Таким образом, у меня есть .so-файл и файл .class, и все работает.

На другом конце я взял начальное введение webapp, которое дает вам AWS. Загрузили его на мою машину и распаковали файл войны (Eclipse добавляет кучу шаблонов и структурирования, и я не уверен в своей способности еще больше усложнять его новыми инструментами вроде муравья или что-то делать с компиляцией (мне очень нравится javac , джава и баночка, большое спасибо)). Я создал форму на странице index.jsp и некоторый javascript, который принимает входные переменные, выполняет функцию на них, а затем выводит выходные данные в форме.

Насколько я могу судить, все, что мне нужно сделать, это вызвать класс java из .jsp, и это должно связывать все это вместе. Я понимаю, что может быть лучший способ сделать это. Если я нарушаю какой-то глубокий принцип программирования webapp или возникает проблема безопасности, дайте мне знать. (Я продолжу и дезактивирую свои данные, например). Я не могу точно понять, как это сделать. Примером приветствия мира, сделавшего это, было бы очень полезно. Нужно ли мне вставлять что-либо в файл web.xml? Я немного смутно знаю, что файл .class входит в каталог классов. Где находится файл .so?

В итоге: Есть более простой способ сделать то, что я делаю (я знаю, что есть лучше пути) Это то, что я делаю опасно (меньше языков/программ/строк кода?) в некотором роде? Как я могу назвать класс java из index.jsp? Есть ли у web.xml что-нибудь? Как скомпилировать JNI, чтобы найти .so-файл где-то, кроме файла .class? Могу ли я вставить файл .so в файл класса?

ответ

0

Я бы поместил файл .so в папку $ CATALINA_HOME/shared/lib, где бы это ни было.

Если вы не хотите его размещать, возможно, вы хотите указать значение java.library.path как один из параметров, переданных в среду выполнения java (например, java -Djava.library.path =/path/to/my.so ...), это означает, что вам, вероятно, нужно взломать программу запуска tomcat, или вы можете добавить этот параметр в переменную среды JAVA_OPTS.

Смежные вопросы