2012-06-08 37 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环境变量中。