从 cargo-maven2-plugin 以嵌入式模式启动 tomcat 的最简单方法是啥?
Posted
技术标签:
【中文标题】从 cargo-maven2-plugin 以嵌入式模式启动 tomcat 的最简单方法是啥?【英文标题】:What is the easiest way to start tomcat in embedded mode from the cargo-maven2-plugin?从 cargo-maven2-plugin 以嵌入式模式启动 tomcat 的最简单方法是什么? 【发布时间】:2008-10-01 01:53:02 【问题描述】:我已将 tomcat:catalina:5.5.23 定义为 cargo 插件的依赖项,但是我仍然收到以下异常:
java.lang.ClassNotFoundException: org.apache.catalina.Connector
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.codehaus.cargo.container.tomcat.internal.Tomcat5xEmbedded.preloadEmbedded(Tomcat5xEmbedded.java:232)
看起来 RealmClassLoader 没有找到类,可能是由于 java.security.AccessController.doPrivileged 拒绝访问。
有没有人在 maven 中让 tomcat 以嵌入式模式运行?
【问题讨论】:
您介意发布您的 POM 的相关部分吗? cargo 配置和相关依赖项就足够了。 AFAIK,使用 tomcat 嵌入式实现的货物参考不多。这个实现是“最近”贡献的,只有 Jetty 在早期版本中嵌入了实现。您应该直接在 cargo dev 列表上提出您的问题。 【参考方案1】:旁注: 你可以启动类似于tomcat的jetty。 (Servlet 将在 http://localhost:8080/artefact-name 提供)
mvn jetty6:run
你必须添加到你的 pom 中:
<project>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty6-plugin</artifactId>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<!--
<webXml>$basedir/WEB-INF/web.xml</webXml>
-->
</configuration>
</plugin>
</plugins>
</build>
</project>
【讨论】:
【参考方案2】:还有一个tomcat maven插件:
http://mojo.codehaus.org/tomcat-maven-plugin/introduction.html
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
</plugin>
</plugins>
在我的机器上,这会加载 tomcat 6。我不知道如何让它与 tomcat 5.5 一起工作
【讨论】:
以上是关于从 cargo-maven2-plugin 以嵌入式模式启动 tomcat 的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.2.3:run (default-cli) on project Mav
cargo failed to finish deploying within the timeout period [120000]