WildFly部署Maven项目遇NoSuchMethodException错误求助
问题描述
使用mvn clean install wildfly:deploy部署Maven项目,或手动上传war包到WildFly时,部署失败,错误信息如下:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.subunit."myapp-ear.ear"."myapp-ws.war".undertow-deployment.UndertowDeploymentInfoService" => "Failed to start service
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: org.ws.MyappWS.<init>()
Caused by: java.lang.NoSuchMethodException: org.ws.MyAppWS.<init>()"}}
解决建议
- 检查
org.ws.MyAppWS类的构造函数:WildFly容器实例化WebService类时,必须依赖公共无参构造函数。如果该类仅定义了带参构造函数,容器无法通过反射创建实例,就会触发此异常。- 若手动编写了带参构造函数,需显式添加无参构造函数:
public class MyAppWS { // 显式声明无参构造函数 public MyAppWS() { // 可添加初始化逻辑,或留空 } // 自定义带参构造函数 public MyAppWS(SomeDependency dependency) { // ... } }
- 若手动编写了带参构造函数,需显式添加无参构造函数:
- 调整依赖注入方式:如果
MyAppWS需要依赖其他组件,优先使用@Inject字段注入或Setter注入,避免仅通过带参构造函数注入,确保无参构造函数存在。 - 验证编译后的字节码:用
javap -c org.ws.MyAppWS命令查看编译后的class文件,确认其中包含<init>()(无参构造函数)的字节码信息。 - 检查打包完整性:确认
myapp-ws.war包中包含正确编译的MyAppWS.class文件,无遗漏或编译错误。
内容的提问来源于stack exchange,提问作者user8128167
相关产品推荐
相关产品推荐

