【问题标题】:Server can not find class in .ear服务器在 .ear 中找不到类
【发布时间】:2011-03-11 12:44:43
【问题描述】:

我的 .ear 文件有一些问题。文件结构为:

app.ear
|-xxx.jar
 -yyy.jar
 -zzz.jar
 -ektorp.jar
 -app-ejb.jar
 -app-web.war
  |-WEB-INF
    |-lib
      |-xxx.jar
      |-yyy.jar
      |-zzz.jar
      |-ektorp.jar

当我尝试部署我的应用程序时,我得到 ClassNotFoundException,其中类 wihch 在 ektorp.jar 中。此文件由 ejb 模块使用。

我也不知道为什么这些罐子要翻倍?在 ear 和 in war 模块中是相同的 .jar 文件。

Ear 由 maven2 构建。

【问题讨论】:

  • 你也可以发布你的application.xml

标签: java maven-2 jakarta-ee java-ee-6 ear


【解决方案1】:

当我尝试部署我的应用程序时,我得到了 ClassNotFoundException,其类位于 ektorp.jar 中。此文件由 ejb 模块使用。

EJB-JAR 是否在清单中的 Class-Path: 条目中引用 ektorp.jar(有关这方面的更多背景信息,请参阅 Packaging EJB 3 Applications)?常见问题解答解释how you can configure the plugin to generate a Class-Path: entry in the manifest

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ejb-plugin</artifactId>
        <version>2.2.1</version>
        ...
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
           </manifest>
         </archive>
       </configuration>
        ...
     </plugin>
   </plugins>
 </build>
  ...
</project>

以防万一,您是否知道可以使用 Java EE 6 将 EJB 打包到 .war 中(不同之处在于,使用 .war 打包时,所有类都使用相同的类加载器加载)?如果你没有很强的模块化需求,那么 .war 的打包会更简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多