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

Eclipse中org.apache.axis2.transport.http.AxisServlet类型无法访问的问题求助

解决Axis2 1.7.9 + Java 11下AxisServlet无法访问的问题

我之前也踩过Java 11和Axis2兼容的坑,结合你的环境(Java 11、Eclipse EE 2020、Axis2 1.7.9),给你几个针对性的排查和解决步骤:


1. 确认Axis2核心依赖包完整且放置正确

AxisServlet所在的axis2-transport-http-1.7.9.jar是核心,但它还依赖其他包,你需要确保以下Jar必须放在Web项目的WEB-INF/lib目录下(不能只添加到Eclipse构建路径):

  • axis2-core-1.7.9.jar
  • axis2-kernel-1.7.9.jar
  • axis2-transport-http-1.7.9.jar
  • axis2-transport-local-1.7.9.jar
  • commons-logging-1.2.jar(Axis2依赖的日志包)
  • wsdl4j-1.6.3.jar(WSDL处理依赖)

复制完成后,右键项目 → Build Path → Add to Build Path,让Eclipse识别这些依赖。


2. 处理Java 11模块化系统的兼容性问题

Java 9+的模块系统(JPMS)会限制非模块化Jar的类可见性,而Axis2 1.7.9的Jar都是非模块化的,需要做以下配置:

  • 如果你的项目有module-info.java,添加对Axis2包的开放声明:
    module your.project.module.name {
        requires axis2.core;
        requires axis2.transport.http;
        // 开放JSP所在包,允许访问Axis2类
        opens com.your.jsp.package to org.apache.axis2.transport.http;
    }
    
  • 若无module-info.java,直接在Eclipse中设置:右键项目 → Properties → Java Build Path → Libraries → 展开JRE System Library → 点击Access rules → Edit → Add,规则设为Accessible,路径填org/apache/axis2/**,强制开放Axis2所有包的访问权限。

3. 调整Tomcat类加载配置

Tomcat在Java 11下的类加载机制有变化,可尝试:

  • 把Axis2核心Jar(尤其是axis2-transport-http-1.7.9.jar)复制到Tomcat的lib目录下,让Tomcat全局类加载器加载这些类,避免Web项目类加载器的限制。
  • 重启Tomcat后,右键项目 → Clean,再重新发布项目到Tomcat。

4. 修复自动生成的http.base.jsp导入问题

Eclipse向导生成的JSP可能存在导入错误,你可以:

从Axis2官方分发包的webapp/WEB-INF/jsp/目录下找到标准的http.base.jsp,替换你项目中自动生成的版本,这个标准版本的导入语句是经过验证的。

另外,确认JSP的page指令包含language="java",避免语法层面的限制。


5. 清理缓存并重建项目

最后试试“万金油”操作:

  • 关闭Eclipse,删除项目目录下的.settings、bin、target(Maven项目)文件夹。
  • 重新打开Eclipse,导入项目,右键项目 → Maven → Update Project(Maven项目),或Project → Build Project。

这些步骤应该能解决大部分Java 11与Axis2兼容导致的类无法访问问题。

内容的提问来源于stack exchange,提问作者Estefanía

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:42:29