gpt4 book ai didi

java - 无法启动 kurento 存储库服务器

转载 作者:行者123 更新时间:2023-11-29 04:38:57 25 4
gpt4 key购买 nike

当我按照 Kurento 教程运行示例 Java - Repository 时,需要先安装 kurento 存储库服务器,我遇到了一些问题。

按照 Kurento Repository Server 安装指南,在最后一步,我通过以下命令在用户级别运行服务器:

 $ cd kurento-repository-server-x.y.z
$ ./bin/start.sh

不幸的是,它显示

$ bash ./start.sh
=========================================================================

Kurento Repository Bootstrap Environment

KREPO_BINARY: /home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/lib/kurento-repo.jar

JAVA: /usr/lib/jvm/jdk1.7.0_80/bin/java

JAVA_OPTS: -server -XX:+UseCompressedOops -XX:+TieredCompilation

KREPO_OPTS: -DconfigFilePath=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo.conf.json -Dkurento-repo.log.file=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/logs/kurento-repo.log -Dlogging.config=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo-log4j.properties -Dlog4j.configuration=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo-log4j.properties

=========================================================================

no main manifest attribute, in /home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/lib/kurento-repo.jar

OK,它找不到包含main方法的类。

所以我将 start.sh 的最后一条命令从

更改为
exec $JAVA $JAVA_OPTS $KREPO_OPTS -jar $KREPO_BINARY

exec $JAVA $JAVA_OPTS $KREPO_OPTS -cp $KREPO_BINARY org.kurento.repository.KurentoRepositoryServerApp

在查看源代码后,我确信 org.kurento.repository.KurentoRepositoryServerApp 包含一个 main 方法。

但是,它显示另一个错误:

$ bash ./start.sh
=========================================================================

Kurento Repository Bootstrap Environment

KREPO_BINARY: /home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/lib/kurento-repo.jar

JAVA: /usr/lib/jvm/jdk1.7.0_80/bin/java

JAVA_OPTS: -server -XX:+UseCompressedOops -XX:+TieredCompilation

KREPO_OPTS: -DconfigFilePath=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo.conf.json -Dkurento-repo.log.file=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/logs/kurento-repo.log -Dlogging.config=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo-log4j.properties -Dlog4j.configuration=/home/lcrc/kurento-java/kurento-repository/kurento-repository-server/target/kurento-repository-server-6.6.1-SNAPSHOT/config/kurento-repo-log4j.properties

=========================================================================

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/Servlet
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
at java.lang.Class.getMethod0(Class.java:2866)
at java.lang.Class.getMethod(Class.java:1676)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Servlet
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more

如何解决?

最佳答案

不确定您正在使用 kurento-java 存储库中的哪个标签,但我正在使用当前的主标签(6.6.2-SNAPSHOT)。

我做了两件事来让它工作:

1.) 不再提供在哪里可以找到 main,而是删除 pom.xml 文件中的 mainClass 引用,让 spring-boot-maven-plugin 发挥它的魔力。转到插件部分并删除 spring-boot-maven-plugin 的配置。

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- REMOVE CONFIGURATION BEGIN -->
<!-- <configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
<classifier>exec</classifier>
</configuration> -->
<!-- REMOVE CONFIGURATION END -->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>

2.) 执行此操作后,会发生 logback 库冲突。因此排除包含在 spring-boot-starter-web

中的 spring-boot-starter-logging
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- ADD EXCLUSION BEGIN -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
<!-- ADD EXCLUSION END -->
</dependency>

那么,您根本不必更改 start.sh 脚本。

关于java - 无法启动 kurento 存储库服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com