3

我认为对于任何知道自己在做什么的人来说,我正在尝试做的事情应该是非常容易的,但是我编写过的几乎毫无例外的唯一语言是 C。我做得很差。我正在尝试在与 C 程序对话的弹性 beantalk 上创建一个 webapp。我目前的计划是使用 JNI 创建一个本机函数,当有人填写表单并按下按钮时,我可以在主 jsp 页面上调用该函数。

到目前为止,在 C 端,我已经编写了一个函数,其中包含 C 程序执行所需的所有操作所需的 7 个输入变量和 7 个输出变量。我不需要访问数据库或做任何困难的事情,我只需要传入 7 个变量和 7 个变量。

我已经设置了一个具有本机方法的 java 类。我给了它一个主函数,它插入虚拟变量并打印出结果。当我在一个没有任何包名或任何使其复杂化的目录中编译它时,JNI 就可以工作(我无法让它与包名一起使用。)所以我有一个 .so 文件和一个 .class 文件等等作品。

另一方面,我采用了 AWS 为您提供的初步介绍 webapp。将它下载到我的机器上并解压缩war文件(Eclipse添加了一堆样板和结构,我不相信我有能力使用ant等新工具进一步复杂化它或进行编译(我对javac非常满意) ,javah和jar,非常感谢))。我在索引 .jsp 页面上创建了一个表单,一些接受输入变量的 javascript 对它们执行一个函数,然后将输出数据粘贴到表单上。

据我所知,我现在需要做的就是从 .jsp 调用 java 类,这应该将整个事情联系在一起。我知道可能有更好的方法来做到这一点。如果我违反了 webapp 编程的一些深层原则或存在安全问题,请告诉我。(例如,我将继续清理我的数据输入)。我似乎无法弄清楚该怎么做。一个 hello world 的例子会很有帮助。我需要在 web.xml 文件中添加任何内容吗?我隐约知道 .class 文件位于 classes 目录中。.so 文件在哪里?

总结:有没有更简单的方法来做我正在做的事情(更少的语言/程序/代码行?)(我知道有更好的方法)我正在做的事情以某种方式危险吗?如何从 index.jsp 调用 java 类?web.xml 必须有什么吗?如何编译 JNI 以在 .class 文件以外的其他位置找到 .so 文件?我可以将 .so 文件与类文件一起粘贴吗?

4

1 回答 1

0

我会将 .so 文件放在 $CATALINA_HOME/shared/lib 文件夹中的任何位置。

如果你不想把它放在那里,也许你想指定 java.library.path 的值作为传递给 java 运行时环境的选项之一(例如 java -Djava.library.path=/path/to/ my.so ... ),这意味着您可能需要破解 tomcat 启动器,或者您可以将此选项添加到 JAVA_OPTS 环境变量中。

于 2013-08-28T01:06:40.850 回答