【问题标题】:heroku sample application errorheroku 示例应用程序错误
【发布时间】:2012-04-27 12:07:25
【问题描述】:

我在这里做示例应用程序https://github.com/heroku/devcenter-embedded-tomcat

我已经使用“mvn package”运行了应用程序并且构建成功..但是当我使用“sh target/bin/webapp”运行脚本时出现以下错误。先生请帮助..谢谢

C:\文档和 Settings\srinivasa\Documents\workspace-sts-2.9.0.RELEASE\sriniv as>sh 线程“主”中的目标/bin/webapp 异常 java.lang.NoClassDefFoundError:launch/Main 原因: java.lang.ClassNotFoundException:launch.Main 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:launch.Main。程序将退出。

@james 先生,请帮我解决这个错误

C:\Documents and Settings\srinivasa\Documents\workspace-sts-2.9.0.RELEASE\testhe
roku\target\bin>webapp.bat
configuring app with basedir: C:\Documents and Settings\srinivasa\Documents\work
space-sts-2.9.0.RELEASE\testheroku\target\bin\.\src\main\webapp
Apr 16, 2012 8:12:01 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Apr 16, 2012 8:12:01 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Apr 16, 2012 8:12:01 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.22
Apr 16, 2012 8:12:01 PM org.apache.catalina.core.StandardContext resourcesStart
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base C:\Documents and Settings\srin
ivasa\Documents\workspace-sts-2.9.0.RELEASE\testheroku\target\bin\src\main\webap
p does not exist or is not a readable directory
        at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.
java:140)

先生,我的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.heroku.sample</groupId>
  <artifactId>embeddedTomcatSample</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>embeddedTomcatSample Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper-el</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>7.0.22</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>embeddedTomcatSample</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.1.1</version>
            <configuration>
                <assembleDirectory>target</assembleDirectory>
                <programs>
                    <program>
                        <mainClass>main.java.launch.Main</mainClass>
                        <name>webapp</name>
                    </program>
                </programs>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>assemble</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
</project>

并且我使用相同的 Main.java、HelloServlet.java、index.jsp

【问题讨论】:

    标签: java deployment heroku


    【解决方案1】:

    不知道你是否还关心这个,但你关心了吗:

    set REPO=%UserProfile%\.m2\repository
    

    ? appassembler 生成的 target/bin/webapp 脚本依赖于该环境变量。

    【讨论】:

      【解决方案2】:

      在 Windows 上你需要运行:

      target\bin\webapp.bat
      

      【讨论】:

      • :::term web: sh target/bin/webapp .....先生,我如何在 Windows 中创建 procfile? procfile 是一个类文件或它究竟是什么请帮助
      • @user1160126 - 从目录C:\Documents and Settings\srinivasa\Documents\workspace-sts-2.9.0.RELEASE\testheroku 运行target\bin\webapp.bat,而不是从目标/bin 目录运行webapp.bat
      • Procfile 仅在 Heroku 上使用,而不是在本地使用。
      • @JamesWard 非常感谢,我浪费了太多时间在 Heroku 的页面 target/bin/webapp.bat 上输入内容,而我不断收到“目标”无法识别。
      【解决方案3】:

      JVM 告诉您它找不到类 launch.Main。您需要设置 JVM 的类路径才能找到它:

      java -cp <f> launch.Main
      

      &lt;f&gt; 是包含启动目录的文件夹的路径(例如 target/bin)

      【讨论】:

      • 谢谢先生..我走对了..请帮助..首先在我的spring源工具套件中将新项目作为“动态网络项目”..然后我只有'src '文件夹..我没有得到这些文件夹“src/main/java/launch”..我需要手动创建这些文件夹吗??..请帮助这是正确的方式吗?
      • 我对spring不熟悉,但是源码文件夹应该没问题(源码编译好,运行时出错)
      • 先生在 pom.xml 中的同一个应用程序中..这些出现了..我怎样才能得到这些文件?请帮助我 com.heroku.sampleembeddedTomcatSample1.0-SNAPSHOTembeddedTomcatSample Maven Webappmaven.apache.org</url> org.apache.tomcat.embed
      • 编译项目时应该由maven自动下载。运行mvn install 构建项目,然后尝试mvn exec:exec -- 如果 pom.xml 是这样设置的,它将使用正确的类路径启动程序
      • 先生,当我完成 mvn exec:exec-- [错误] 无法执行目标 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (d efault-cli ) 在项目 embeddedTomcatSample 上:goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec 的参数 'executable' 丢失或无效 -> [帮助 1]
      猜你喜欢
      • 2013-08-10
      • 2011-12-18
      • 2016-04-01
      • 2017-01-30
      • 2018-02-17
      • 2014-11-19
      • 2014-03-12
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多