gpt4 book ai didi

Java反射(reflect)getConstructor NoSuchMethodException错误

转载 作者:行者123 更新时间:2023-11-30 04:33:14 27 4
gpt4 key购买 nike

我有一个名为 ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage 的类,定义如下

public class ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage
extends java.lang.Exception {

private static final long serialVersionUID = 1354218639401L;

public ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage() {
super("ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage");
}

public ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage(
java.lang.String s) {
super(s);
}

public ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage(
java.lang.String s, java.lang.Throwable ex) {
super(s, ex);
}

public ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage(
java.lang.Throwable cause) {
super(cause);
}
}

我正在努力

java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"Capture"));
LOGGER.debug("ExceptionClassName"+exceptionClassName);
java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(String.class);

其中 exceptionClass 是日志中的 ICwsTransactionProcessing_Capture_CWSInvalidOperationFaultFault_FaultMessage

我收到NoSuchMethodException。为什么?

最佳答案

这是 wsdl2java 生成的客户端 stub 代码中的 Axis2 错误。

https://issues.apache.org/jira/browse/AXIS2-5420

生成的代码中使用的 String 类应该是 java.lang.String,但由于 WSDL 导入使用 Microsoft 序列化类型,Axis2 已生成名为 String 的内部类。

正确的代码生成应该使用java.lang.String作为构造函数反射参数。

这有点难以发现,因为生成的 stub 有 20 万多行。

该错误已在未发布的 Axis2 1.6.3 和 1.7 分支中修复。

谢谢大家的帮助。

关于Java反射(reflect)getConstructor NoSuchMethodException错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com