You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse发布WebSphere应用时EJB-in-WAR出现类找不到异常

解决Eclipse发布EAR到WebSphere时的ClassNotFoundException问题

问题分析

通过mvn install构建的EAR能正常部署到WebSphere,说明依赖关系和EAR结构是正确的,但Eclipse发布时出现ClassNotFoundException,核心原因是Eclipse的发布机制没有正确将datamodel.jar(包含EmployeeDto类)纳入应用的类路径,导致WebSphere容器无法找到该类。

解决方案

1. 显式添加datamodel依赖到EAR模块的pom.xml

当前EAR的pom仅声明了ejb和web模块依赖,虽然ejb依赖datamodel,但Eclipse的Maven集成可能不会自动将传递依赖的jar包纳入EAR的lib目录。需在EAR的<dependencies>中添加datamodel的依赖:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>datamodel</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

2. 检查Eclipse的Deployment Assembly配置

确保每个模块的部署配置正确:

  • EAR项目:右键项目 → Properties → Deployment Assembly,确认datamodel.jar被部署到/lib目录下。
  • EJB/WAR项目:由于开启了skinnyWars,需确保datamodel.jar未被打包到EJB或WAR的内部目录(如WEB-INF/lib),而是指向EAR的lib目录。

3. 调整WebSphere服务器的发布设置

  • 在Eclipse的Server视图中,右键WebSphere服务器 → Properties → WebSphere Application Server > Publishing。
  • 选择Full publish(而非增量发布),确保所有依赖文件被完整复制到服务器。
  • 勾选Automatically publish to server,并确认使用Maven生成的应用配置文件。

4. 验证application.xml的生成内容

检查Maven生成的application.xml(位于EAR项目的target/META-INF目录),确保包含以下配置,保证EAR/lib下的jar包能被所有模块访问:

<library-directory>lib</library-directory>

(注:你的maven-ear-plugin配置中已设置defaultLibBundleDir: lib/,理论上会自动生成该配置,但需确认Eclipse发布时使用的是这个文件而非自动生成的临时配置。)

5. 清理重建项目与服务器

  • 执行mvn clean install,确保所有模块的最新构建产物生成。
  • 在Eclipse中执行Project > Clean...,清理所有项目的编译缓存。
  • 右键WebSphere服务器 → Clean...,清除服务器上已部署的旧应用,重启服务器后重新发布。

6. 调整WebSphere的类加载策略

若以上步骤无效,可尝试修改WebSphere的类加载配置:

  • 登录WebSphere控制台,进入Applications > Application Types > WebSphere enterprise applications > [你的应用] > Class loading and update detection。
  • 将Class loader order设置为Classes loaded with local class loader first (parent last)。
  • 将WAR class loader policy设置为Single class loader for application。

内容的提问来源于stack exchange,提问作者Mohammed Mostafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:05:37