java - 找不到 javax.servlet.GenericServlet 的类文件

标签 java servlets java-native-interface hessian javah

我已经在类->头文件中卡住了几天了!

我已经在客户端上尝试过jni http://netbeans.org/kb/docs/cnd/beginning-jni-linux.htmlhttp://ringlord.com/jni-howto.html 。它成功地从 JNI 的 (.cpp) 文件返回“hello JNI C++”。这是我的步骤:

  1. 创建 native 函数并在 client.java 中
  2. 在 Netbeans IDE 上清理并构建此 client.java,然后生成 client.class 文件
  3. javah –jni [包].[类名]
  4. 按照第一个引用方法创建一个动态库 C++ 项目,并将 client.h 放入源文件中,并将一些 hello 代码放入 (.cpp) 文件 ---> 它可以工作! <

但是,我尝试在 servlet 端执行相同的操作,但它不起作用

  1. Servlet.java->Servlet.class:好的!
  2. Servlet.class->Servlet.h:失败!!! 错误:无法访问 javax.servlet.GenericServlet 找不到 javax.servlet.GenericServlet 的类文件

以下是我迄今为止找到并尝试过的解决方案,

  • 检查包名

  • sudo gedit/etc/profile、sudo gedit .bashrc、sudo/etc/environment;在它们上添加 JAVA_HOME 和 CLASSPATH,并获取它们进行更新,然后 echo $JAVA_HOME,echo $CLASSPATH 进行验证

  • http://www.jarfinder.com/index.php/java/info/javax.servlet.GenericServlet 下载 servlet-api-6.0.14.jar 和 servlet-api-5.0.16.jar ,并通过netbeans IDE->server->property->libraries->Add JAR添加以上两个(.jar)

请告诉我如何解决这个问题,非常感谢!顺便说一句,我正在使用 hessianServlet

最佳答案

NativeWrapper.java(仅在此类上运行 javah)

class NativeWrapper {
  // either
  static {
    System.loadLibrary("MyOpenCVNative");
  }
  // or
  public NativeWrapper() {
    System.loadLibrary("MyOpenCVNative");
  }
  public native void callNative();
}

MyServlet.java

class MyServlet extends javax.servlet.GenericServlet {
  private NativeWrapper nativeWrapper = new NativeWrapper();

  public void someServletMethod() {
    nativeWrapper.callNative();
  }
}

关于java - 找不到 javax.servlet.GenericServlet 的类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157134/

相关文章:

java - 将 Hibernate 集合保存在内存中

java - Java/BouncyCaSTLe 签名的 OpenSSL 等价物

java - 实现 ServletWrappingController 时出现未知异常

java - 如何在 servlet jsp 中实现生产就绪的登录注销功能

java - JNI 的 Autoconf 测试包含目录

java - 线程 "AWT-EventQueue-0"java.lang.NoSuchMethodError 中的异常

java - Maven native 插件中可笑的样板

java - 如何在appium中验证元素的唯一性

java - Spring/Jboss - 当前请求不是多部分请求

mysql - 在我使用数据库进行 servlet 编程时,它没有给出任何输出,但在没有 JDBC 或数据库的情况下,它可以正确运行。我该如何修复它?