服务器在 .ear 中找不到类

发布于 2024-09-08 06:45:13 字数 388 浏览 6 评论 0原文

我的 .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 和war 模块中是相同的.jar 文件。

Ear是由maven2构建的。

I have some problems with my .ear file. The structure of the file is:

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

When I try to deploy my application, I get ClassNotFoundException, with class wihch is in ektorp.jar. This file is used by ejb module.

I also don't know why these jars are doubled? In ear and in war module are the same .jar files.

Ear is built by maven2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦一生花开无言 2024-09-15 06:45:13

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

EJB-JAR 是否在清单中的 Class-Path: 条目中引用 ektorp.jar(请参阅 打包 EJB 3 应用程序 了解更多背景信息)? FAQ 解释了如何配置插件在清单中生成 Class-Path: 条目

<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 打包更简单。

When I try to deploy my application, I get ClassNotFoundException, with class which is in ektorp.jar. This file is used by ejb module.

Does the EJB-JAR reference ektorp.jar in the Class-Path: entry in the manifest (see Packaging EJB 3 Applications for more background on this)? The FAQ explains 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>

Just in case, do you know that you can package EJBs in a .war with Java EE 6 (the difference is that all classes are loaded with the same classloader when using the .war packaging)? If you don't have strong modularization requirements, the .war packaging is simpler.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文