java - Tomcat Apache Web 应用程序中的库出现异常,未找到 TLD

标签 java tomcat web-applications

我刚刚开始学习 Apache Tomcat,甚至最近才安装它,正在尝试运行一个特定的 Java 程序/类来等待/监听来自 php post 请求的数据,下面是代码。我称这个类为 Listener.java

 package matchfaces;

 public class Listener {

        public static final String JAVABRIDGE_PORT = "1699";//8080
        static final php.java.bridge.JavaBridgeRunner runner =
        php.java.bridge.JavaBridgeRunner.getInstance(JAVABRIDGE_PORT);

        public static void main() {
    // TODO code application logic here
    try {
            System.loadLibrary("facesdk");
            int res = FSDK
                            .ActivateLibrary("LICENCE KEY");
            FSDK.Initialize();
            FSDK.SetFaceDetectionParameters(true, true, 384);
            FSDK.SetFaceDetectionThreshold(5);

            if (res == FSDK.FSDKE_OK) {
                    System.out.println("FaceSDK activated\n");
            } else {
                     System.out.println("Error activating FaceSDK: " + res + "\n");
            }
    } catch (java.lang.UnsatisfiedLinkError e) {
             System.out.println("exception " + e.getMessage());
    }

    runner.waitFor();
}

经过大量研究后,我尝试了一些方法,但现在,我需要的库似乎没有被加载,因此引发了异常。我的web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>


<servlet>
    <servlet-name>Match Faces</servlet-name>
    <servlet-class>matchfaces.Listener</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Match Faces</servlet-name>
    <url-pattern>/matchfaces</url-pattern>
</servlet-mapping>

<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

<listener>
    <listener-class>ViewHandler.handler</listener-class>
</listener>

<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

所以我使用了一个监听器,所以在 Tomcat 启动服务器时它会触发 Web 应用程序 java 类 Listener.java

public class handler implements javax.servlet.ServletContextListener{

@Override
public void contextInitialized(ServletContextEvent sce) {
     try {
         Listener listen = new Listener();
         listen.main();
     } catch (InterruptedException ex) {
         Logger.getLogger(Listener.class.getName()).log(Level.SEVERE, null, ex);
     }
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}


 }

我得到的错误是这样的

exception no facesdk in java.library.path

最佳答案

您遇到的主要问题是 System.loadLibrary("facesdk"); 您似乎没有提供 facesdk.dll 库的路径。但是,与其在 loadLibrary 方法中声明路径,不如前往 catalina.bat 文件并在 :noJuliManager 下 set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% 添加这个 set JAVA_OPTS="-Djava.library.path=%CATALINA_BASE%\lib" 这应该可以正常工作。

关于java - Tomcat Apache Web 应用程序中的库出现异常,未找到 TLD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125487/

相关文章:

java - 在 Spark 中运行迭代程序(Java)时出现 Stackoverflow 错误

tomcat - 如何在 Apache Tomcat 中的单个 JS 文件上设置 Expires HTTP header ?

java - Solr 索引时间 32 位与 64 位

java - 使用正则表达式获取 HTML 标签内的信息

java - 即使消息正确,TestNG 测试也会失败并显示错误消息

java - JBoss 中的 EJB 特化

web-applications - 将 ng-show 绑定(bind)到 AngularJS 中的选择选项

sql-server - 非常大的 tempdb

java - httpd error_log 正在记录在 https 上运行 Web 应用程序的错误

web-applications - 通过浏览器监听 TCP 连接