如何解决 tanukisoftware wrapper 中的 “WrapperSimpleApp: 无法找到类…” 问题。

huangapple go评论140阅读模式
英文:

How to solve "WrapperSimpleApp: Unable to locate the class ..." in tanukisoftware wrapper

问题

在运行 tanukisoftware wrapper 时出现了错误。

    wrapper  | --> 包装器已作为控制台启动
    wrapper  | 正在启动 JVM...
    jvm 1    | 包装器(版本 3.2.3)http://wrapper.tanukisoftware.org
    jvm 1    | 版权所有 1999-2006 Tanuki Software, Inc. 保留所有权利。
    jvm 1    | 
    jvm 1    | WrapperSimpleApp:无法找到类 com.aplova.productimagesautouploader.ProductImagesAutoUploaderApplication.class:java.lang.ClassNotFoundException: com.aplova.productimagesautouploader.ProductImagesAutoUploaderApplication.class
    jvm 1    | 
    jvm 1    | WrapperSimpleApp 用法:
    jvm 1    |   java org.tanukisoftware.wrapper.WrapperSimpleApp {app_class} [app_arguments]
    jvm 1    | 
    jvm 1    | 其中:
    jvm 1    |   app_class:要运行的应用程序的完全限定类名。
    jvm 1    |   app_arguments:通常会传递给应用程序的参数。
    wrapper  | <-- 包装器已停止

我对创建包装器一无所知,对于这个错误毫无头绪。
我的 wrapper.conf 如下所示,

    #********************************************************************
    # 包装器属性
    #********************************************************************
    # Java 应用程序
    wrapper.java.command=java
    wrapper.working.dir=..
    
    # Java 主类。此类必须实现 WrapperListener 接口
    # 或保证 WrapperManager 类已初始化。助手类可用于为您执行此操作。
    # 有关详细信息,请参见文档中的集成部分。
    wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
    set.default.REPO_DIR=lib
    set.APP_BASE=.
    
    # Java 类路径(包括 wrapper.jar)从 1 开始添加类路径元素
    wrapper.java.classpath.1=lib/wrapper.jar
    wrapper.java.classpath.2=conf
    wrapper.java.classpath.3=%REPO_DIR%/product-images-auto-uploader-0.0.1-SNAPSHOT.jar
    wrapper.java.classpath.4=%REPO_DIR%/spring-boot-configuration-processor-2.3.2.RELEASE.jar
    wrapper.java.classpath.5=%REPO_DIR%/thumbnailator-0.4.11.jar

  
并且 lib 目录中还有所需的 jar 文件。那么,如何解决这个错误。
英文:

I have got error when running tanukisoftware wrapper.

wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    | 
jvm 1    | WrapperSimpleApp: Unable to locate the class com.aplova.productimagesautouploader.ProductImagesAutoUploaderApplication.class: java.lang.ClassNotFoundException: com.aplova.productimagesautouploader.ProductImagesAutoUploaderApplication.class
jvm 1    | 
jvm 1    | WrapperSimpleApp Usage:
jvm 1    |   java org.tanukisoftware.wrapper.WrapperSimpleApp {app_class} [app_arguments]
jvm 1    | 
jvm 1    | Where:
jvm 1    |   app_class:      The fully qualified class name of the application to run.
jvm 1    |   app_arguments:  The arguments that would normally be passed to the
jvm 1    |                   application.
wrapper  | <-- Wrapper Stopped

I'm new to creating wrappers and no idea about this error.
My wrapper.conf looks like this,

#********************************************************************
# Wrapper Properties
#********************************************************************
# Java Application
wrapper.java.command=java
wrapper.working.dir=..

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
set.default.REPO_DIR=lib
set.APP_BASE=.

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=lib/wrapper.jar
wrapper.java.classpath.2=conf
wrapper.java.classpath.3=%REPO_DIR%/product-images-auto-uploader-0.0.1-SNAPSHOT.jar
wrapper.java.classpath.4=%REPO_DIR%/spring-boot-configuration-processor-2.3.2.RELEASE.jar
wrapper.java.classpath.5=%REPO_DIR%/thumbnailator-0.4.11.jar

And lib directory also have needed jar files. So, How to solve this error.

答案1

得分: 2

我找到了解决方法。这个错误是来自 pom.xml 文件的。在 pom 文件中有以下部分:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> 

以及

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>appassembler-maven-plugin</artifactId>
  <version>1.10</version>
  <configuration>
    ...

这两个插件。但是实际上只需要 appassembler-maven-plugin 插件。所以,在移除了 spring-boot-maven-plugin 后,它正常工作了。

总之,这个错误是因为 spring-boot-maven-plugin 替换了被 appassembler-maven-plugin 生成的 jar 文件所导致的。

英文:

I found the solution. This error from pom.xml . In pom there was

&lt;plugin&gt;
  &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
&lt;/plugin&gt; 

and

&lt;plugin&gt;
    &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
    &lt;artifactId&gt;appassembler-maven-plugin&lt;/artifactId&gt;
    &lt;version&gt;1.10&lt;/version&gt;
    &lt;configuration&gt;
    ...

both plugins. But only need plugin is appassembler-maven-plugin. So, after remove spring-boot-maven-plugin it's working.

As a conclusion, this error occur because of spring-boot-maven-plugin replace jar file which is generated by appassembler-maven-plugin.

huangapple
  • 本文由 发表于 2020年8月17日 13:26:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/63444998.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定