Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行带有依赖项的jar时,Undertow应用程序未启动_Java_Kotlin_Undertow - Fatal编程技术网

Java 运行带有依赖项的jar时,Undertow应用程序未启动

Java 运行带有依赖项的jar时,Undertow应用程序未启动,java,kotlin,undertow,Java,Kotlin,Undertow,我正在与Kotlin一起练习,希望运行一个轻量级的Rest应用程序。我有在爪哇使用Jersey、Jackson和Weld CDI进行底拖的经验 我编写了启动web容器的最低要求,它在IntelliJ中运行良好。 尽管如此,当我尝试使用java-jarapp with dependencies.jar运行带有依赖项的jar时,我会遇到错误 主要类别: package nl.orhun.samplerestapp import io.undertow.Handlers import io.unde

我正在与Kotlin一起练习,希望运行一个轻量级的Rest应用程序。我有在爪哇使用Jersey、Jackson和Weld CDI进行底拖的经验

我编写了启动web容器的最低要求,它在IntelliJ中运行良好。 尽管如此,当我尝试使用
java-jarapp with dependencies.jar运行带有依赖项的jar时,我会遇到错误

主要类别:

package nl.orhun.samplerestapp

import io.undertow.Handlers
import io.undertow.Undertow
import io.undertow.servlet.Servlets
import io.undertow.servlet.Servlets.servlet
import nl.orhun.samplerestapp.config.JerseyConfig
import org.glassfish.jersey.servlet.ServletContainer
import org.jboss.weld.environment.servlet.Listener

fun main() {
    val servletBuilder = Servlets.deployment()

    servletBuilder.setClassLoader(ClassLoader.getSystemClassLoader())
            .setContextPath("/app")
            .setDeploymentName("app.war")
            .addListener(Servlets.listener(Listener::class.java))
            .addServlets(
                    servlet("jerseyServlet", ServletContainer::class.java)
                            .setLoadOnStartup(1)
                            .addInitParam("javax.ws.rs.Application", JerseyConfig::class.java.name)
                            .addMapping("/rest/*")
            )

    val manager = Servlets.defaultContainer().addDeployment(servletBuilder)
    manager.deploy()

    val path = Handlers.path(Handlers.redirect("/app"))
            .addPrefixPath("/app", manager.start())

    val server = Undertow.builder()
            .addHttpListener(8090, "localhost")
            .setHandler(path)
            .build()
    server.start()
}
错误:

$ java -jar target/nl.orhun.samplerestapi-1.0-SNAPSHOT-jar-with-dependencies.jar
Mar 06, 2019 9:04:48 PM org.jboss.weld.environment.servlet.Listener contextInitialized
INFO: WELD-ENV-001007: Initialize Weld using ServletContextListener
Mar 06, 2019 9:04:48 PM org.jboss.weld.bootstrap.WeldStartup <clinit>
INFO: WELD-000900: 2.4.8 (Final)
Mar 06, 2019 9:04:48 PM org.jboss.weld.bootstrap.WeldStartup startContainer
INFO: WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl because of underlying class loading error: Type org.osgi.framework.BundleListener not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.jboss.logging.JBossLogManagerLogger because of underlying class loading error: Type org.jboss.logmanager.Level not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.jboss.weld.injection.spi.helpers.ForwardingJpaInjectionServices because of underlying class loading error: Type javax.persistence.EntityManager not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from io.undertow.servlet.osgi.Activator because of underlying class loading error: Type org.osgi.framework.BundleActivator not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.jboss.weld.jsf.FacesUrlTransformer because of underlying class loading error: Type javax.faces.context.FacesContext not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.glassfish.jersey.internal.OsgiRegistry$OsgiServiceFinder because of underlying class loading error: Type org.osgi.framework.SynchronousBundleListener not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
INFO: WELD-000119: Not generating any bean definitions from org.glassfish.jersey.server.internal.scanning.PackageNamesScanner$1 because of underlying class loading error: Type org.osgi.framework.SynchronousBundleListener not found.  If this is unexpected, enable DEBUG logging to see the full error.
Mar 06, 2019 9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry handleResourceLoadingException
<.... truncated...>
Exception in thread "main" java.lang.RuntimeException: org.jboss.weld.exceptions.DeploymentException: Malformed class name
        at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)
        at nl.orhun.samplerestapp.MainKt.main(Main.kt:26)
        at nl.orhun.samplerestapp.MainKt.main(Main.kt)
Caused by: org.jboss.weld.exceptions.DeploymentException: Malformed class name
        at org.jboss.weld.executor.AbstractExecutorServices.checkForExceptions(AbstractExecutorServices.java:66)
        at org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:43)
        at org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:51)
        at org.jboss.weld.bootstrap.ConcurrentBeanDeployer.addClasses(ConcurrentBeanDeployer.java:58)
        at org.jboss.weld.bootstrap.BeanDeployment.createClasses(BeanDeployment.java:224)
        at org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:398)
        at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:76)
        at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:191)
        at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:125)
        at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
        at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:216)
        at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:185)
        at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
        at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
        at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:250)
        ... 2 more
Caused by: java.lang.InternalError: Malformed class name
        at java.lang.Class.getSimpleBinaryName(Unknown Source)
        at java.lang.Class.isMemberClass(Unknown Source)
        at org.jboss.weld.util.reflection.Reflections.getNesting(Reflections.java:138)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.initParameters(BackedAnnotatedConstructor.java:50)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.initParameters(BackedAnnotatedConstructor.java:28)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedCallable.<init>(BackedAnnotatedCallable.java:34)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.<init>(BackedAnnotatedConstructor.java:38)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.of(BackedAnnotatedConstructor.java:32)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:168)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:161)
        at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:58)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:157)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:161)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:161)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:62)
        at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:46)
        at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.apply(ClassTransformer.java:80)
        at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.apply(ClassTransformer.java:77)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache$1.apply(ReentrantMapBackedComputingCache.java:55)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache$1.apply(ReentrantMapBackedComputingCache.java:51)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getValue(ReentrantMapBackedComputingCache.java:64)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getCastValue(ReentrantMapBackedComputingCache.java:80)
        at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175)
        at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:192)
        at org.jboss.weld.bootstrap.AnnotatedTypeLoader.loadAnnotatedType(AnnotatedTypeLoader.java:83)
        at org.jboss.weld.bootstrap.AnnotatedTypeLoader.loadAnnotatedType(AnnotatedTypeLoader.java:62)
        at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:94)
        at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:61)
        at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:58)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
        at java.lang.String.substring(Unknown Source)
        ... 35 more

$java-jar-target/nl.orhun.samplerstapi-1.0-SNAPSHOT-jar-with-dependencies.jar
2019年3月6日9:04:48 PM org.jboss.weld.environment.servlet.Listener contextInitialized
信息:WELD-ENV-001007:使用ServletContextListener初始化焊接
2019年3月6日9:04:48 PM org.jboss.weld.bootstrap.WeldStartup
信息:WELD-000900:2.4.8(最终版本)
2019年3月6日9:04:48 PM org.jboss.weld.bootstrap.WeldStartup startContainer
信息:WELD-000101:交易服务不可用。@InjectUserTransaction的注入不可用。事务性观察程序将被同步调用。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:未从org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl生成任何bean定义,因为基础类加载错误:找不到类型org.osgi.framework.BundleListener。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:由于基础类加载错误,未从org.jboss.logging.JBossLogManagerLogger生成任何bean定义:找不到类型org.jboss.logmanager.Level。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:未从org.jboss.WELD.injection.spi.helpers.ForwardingJpaInjectionServices生成任何bean定义,因为底层类加载错误:找不到类型javax.persistence.EntityManager。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:由于基础类加载错误,未从io.undertow.servlet.osgi.Activator生成任何bean定义:找不到类型org.osgi.framework.BundleActivator。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:由于基础类加载错误,未从org.jboss.WELD.jsf.facesurlttransformer生成任何bean定义:未找到javax.faces.context.FacesContext类型。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:未从org.glassfish.jersey.internal.OsgiRegistry$OsgiServiceFinder生成任何bean定义,因为底层类加载错误:找不到类型org.osgi.framework.SynchronousBundleListener。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
信息:WELD-000119:未从org.glassfish.jersey.server.internal.scanning.PackageNameScanner$1生成任何bean定义,因为底层类加载错误:找不到类型org.osgi.framework.SynchronousBundleListener。如果这是意外情况,请启用调试日志以查看完整错误。
2019年3月6日9:04:49 PM org.jboss.weld.bootstrap.MissingDependenciesRegistry HandlereSourceloadingeException
线程“main”java.lang.RuntimeException中的异常:org.jboss.weld.exceptions.DeploymentException:格式错误的类名
位于io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)
在nl.orhun.samplerestapp.MainKt.main(main.kt:26)
在nl.orhun.samplerestapp.MainKt.main(main.kt)
原因:org.jboss.weld.exceptions.DeploymentException:类名格式错误
位于org.jboss.weld.executor.AbstractExecutorServices.checkForExceptions(AbstractExecutorServices.java:66)
位于org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:43)
位于org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:51)
位于org.jboss.weld.bootstrap.ConcurrentBeanDeployer.addClasses(ConcurrentBeanDeployer.java:58)
位于org.jboss.weld.bootstrap.BeanDeployment.createClasses(BeanDeployment.java:224)
位于org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:398)
位于org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:76)
在org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:191)上
位于org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:125)
位于io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
位于io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:216)
位于io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:185)
位于io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
位于io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
位于io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:250)
... 还有两个
原因:java.lang.InternalError:类名格式错误
位于java.lang.Class.getSimpleBinaryName(未知源)
在java.lang.C
 <build>
        <plugins>
            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                                <sourceDir>${project.basedir}/src/main/java</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
                                <sourceDir>${project.basedir}/src/test/java</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>nl.orhun.samplerestapp.MainKt</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
interface Foo {

    fun fooBar(operation: (Foo) -> Foo): Foo

    fun plus(foo: Foo): Foo = fooBar { f -> f.plus(f) }
}