2012-06-08 77 views
3

我認爲我想要做的事情對於任何知道自己在做什麼的人來說都應該是輕而易舉的事情,但是我幾乎沒有例外的唯一語言是C語言。我做得不好。我試圖在彈性beanstalk上創建一個與C程序對話的webapp。我目前的計劃是使用JNI創建一個本地函數,當有人填寫表單並按下按鈕時,我可以在主JSP頁面上調用該函數。Elastic beanstalk中的簡單C程序

到目前爲止,我已經寫了一個函數,它包含了C程序需要做的所有事情所需的7個輸入變量和7個輸出變量。我不需要訪問數據庫或做任何事情,我只需要傳遞7個變量和7個變量。

我設置了一個具有本地方法的java類。我給了它一個主要函數,它粘在虛擬變量中並打印出結果。當我將它全部編譯到一個目錄中而沒有任何軟件包名稱或任何使它複雜化的東西時(我無法使它處理軟件包名稱),JNI的工作原理就是這樣。因此,我有一個.so文件和一個.class文件,並且所有作品。

另一方面,我採用了AWS爲您提供的初始介紹webapp。將它下載到我的機器上並解壓縮war文件(Eclipse添加了一堆樣板和構造,並且我沒有信心使用新工具(如ant或進行編譯)進一步複雜化它(我對javac非常適應,javah和jar,非常感謝你))。我在index .jsp頁面上創建了一個表單,並且一些採用輸入變量的JavaScript對它們執行一個功能,然後將輸出數據粘貼到表單上。

據我所知,我現在需要做的就是從.jsp調用java類,並且應該將整個事物連接在一起。我知道可能有更好的方法來做到這一點。如果我違反了webapp編程的一些深層原理或存在安全問題,請告訴我。 (例如,我會繼續並清理我的數據輸入)。我似乎無法弄清楚如何做到這一點。 hello world這樣做的例子會很有幫助。我需要在web.xml文件中粘貼任何東西嗎?我有點模糊地知道.class文件進入classes目錄。 .so文件在哪裏?

總結: 有沒有更簡單的方式做我在做什麼 (我知道有更好的方式) 是我在做什麼危險(更少的代碼語言/程序/線?)以某種方式? 如何從index.jsp調用java類? web.xml必須有什麼? 如何編譯JNI以查找除.class文件之外的.so文件? 我可以將.so文件粘貼到類文件中嗎?

回答

0

我會把.so文件放在$ CATALINA_HOME/shared/lib文件夾中的任何地方。

如果你不想把它放在那裏,也許你想指定java.library.path的值作爲傳遞給java運行時環境的選項之一(例如java -Djava.library.path =/path/to/my.so ...),這意味着您可能需要破解tomcat啓動器,或者您可以將此選項添加到JAVA_OPTS環境變量中。